#testing #automation #automated-tests #e2e-testing #testcafe
Вопрос:
Есть ли какая-либо функциональная разница между:
await t.expect(Selector('button').visible).ok();
и
await Selector('button', {visibilityCheck: true})
?
Как я понимаю, он делает то же самое? Если селектор не виден, тест завершится неудачей в обоих случаях?
Если все по-другому, можете ли вы привести мне точный пример, показывающий ситуацию, когда все по-другому?
С наилучшими пожеланиями, Анна
Ответ №1:
Во втором случае тест не провалится, возможно, вы имеете в виду
await t.expect(Selector(‘button’, {visibilityCheck: true}).exists).ok();
Лучший способ проверить, виден ли элемент, — это использовать его свойство visible, как вы это сделали в своем первом примере кода.
Опция проверки видимости работает по-другому: если она включена, TestCafe требует, чтобы элемент в утверждении был видимым. В противном случае тест завершится неудачно. Например, следующее утверждение не выполняется:
await t.expect(Selector(‘button’, { visibilityCheck: true }).value).eql('value');
// Error: Cannot obtain information about the node because the specified selector does not match any node in the DOM tree.
В этом случае TestCafe пытается найти видимый элемент с помощью селектора, но не может его найти (так как элемент невидим).