Методы проверки видимости TestCafe

#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 пытается найти видимый элемент с помощью селектора, но не может его найти (так как элемент невидим).