В чем разница между ожиданием появления видимого и ожиданием обнаружения в Selenium

Я использую как wait(until.elementLocated(element, timeout)), так и wait(until.elementVisible(element, timeout)). «Подождать, пока не станет видимым» не удается в тех местах, где «подождать, пока не будет обнаружено». Почему?


person Victoria Cole    schedule 24.01.2018    source источник


Ответы (3)


Поскольку ваш вопрос заключается в разнице между wait(until.elementLocated(element, timeout)) и wait(until.elementVisible(element, timeout)), и вы не пометили привязку Selenium, я объясню это с точки зрения Java.

  • until.elementLocated() эквивалентно presenceOfElementLocated() в Java. Он проверяет, что элемент присутствует в HTML DOM страницы. Это не обязательно означает, что элемент видим. Так что нет никакой гарантии, что это взаимодействует.
  • until.elementVisible() эквивалентно visibilityOfElementLocated() в Java. Он проверяет, что элемент присутствует в HTML DOM страницы и видим. Видимость означает, что элемент не только отображается, но также имеет высоту и ширину больше 0. Опять же, это не обязательно означает, что элемент является интерактивным, то есть кликабельным.

Для получения дополнительной информации о ExpectedConditions в Java см. документы.

person DebanjanB    schedule 25.01.2018

Подождите, пока visible не сделает именно это. Он ждет, пока элемент не станет видимым. Элемент может находиться в DOM, но быть скрытым. В этом случае его можно было бы обнаружить, но не увидеть.

person Lucas Tierney    schedule 25.01.2018

Для получения элемента используются как until.elementLocated(element, timeout), так и until.elementVisible(element, timeout).

Но я предполагаю, что elementLocation будет быстрее, потому что он просто проверяет наличие элемента в DOM страницы и не обязательно означает, что элемент виден. в то время как elementVisible должен проверить, что элемент присутствует в DOM страницы и виден. Видимость означает, что элемент не только отображается, но также имеет высоту и ширину.

Надеюсь, это объяснит разницу.

person Indrapal Singh    schedule 25.01.2018