Чтобы дождаться исчезновения элемента, вы можете использовать наш встроенный механизм ожидания для утверждений. Пожалуйста, смотрите документацию для получения дополнительной информации о том, как это работает.
import { Selector } from 'testcafe';
fixture `fixture`
.page `http://localhost/testcafe/`;
test('test 2', async t => {
//step 1
//wait for the element to disappear (assertion with timeout)
await t.expect(Selector('element').exists).notOk({ timeout: 5000 });
//next steps
});
Или вы можете использовать ClientFunction
:
import { ClientFunction } from 'testcafe';
fixture `fixture`
.page `http://localhost/testcafe/`;
const elementVisibilityWatcher = ClientFunction(() => {
return new Promise(resolve => {
var interval = setInterval(() => {
if (document.querySelector('element'))
return;
clearInterval(interval);
resolve();
}, 100);
});
});
test('test 1', async t => {
//step 1
//wait for the element to disappear
await elementVisibilityWatcher();
//next steps
});
Это кажется на поиск Динамического Linq. Смотрите здесь . Это позволяет Вам передавать строки как аргументы методам запроса, как:
var query = dataSource.Where("CategoryID == 2 && UnitPrice > 3")
.OrderBy("SupplierID");
Редактирование: Другой набор сообщений на этом предмете, с помощью C# 4's Динамическая поддержка: Часть 2 .
Части 1 иТо, на что это походит, является Вами, хотят в основном условного разработчика предиката..
я надеюсь, что можно прессовать это во что-то, что Вы ищете, удачи!
Я недавно должен был сделать это то же самое. Вам будет нужно , Динамический Linq здесь является способом сохранить это со строгим контролем типов.
Вы могли бы хотеть посмотреть на деревья выражений:
IQueryable<T> getQuery<T>(T myTableEntity, string[] arrayOfQueryTerms, Expression<Func<T, bool>> predicate)
{ var fieldOrProperty = getMemberInfo(predicate);
/* ... */
}
MemberInfo getmemberInfo<T>(Expression<Func<T,bool> expr)
{ var memberExpr = expr as MemberExpression;
if (memberExpr != null) return memberExpr.Member;
throw new ArgumentException();
}
var q = getQuery<FooTable>(foo, new[]{"Bar","Baz"}, x=>x.FieldName);