команда selenium webdrive выполняется только когда найден всплывающий элемент - PullRequest
0 голосов
/ 25 апреля 2019

после добавления товара в корзину может появиться всплывающее окно.
как закрыть его всякий раз, когда он появился?
приведенный ниже код работает, когда всплывающее окно появляется, затем я нажимаю кнопку, чтобы закрыть его.
но когда она не появляется, эта команда выполняется на веб-драйвере selenium, ожидание элемента завершилось неудачей.
Я хочу, чтобы эта команда выполнялась только тогда, когда элемент найден.
Я использую пользовательский интерфейс рекордера, я нашел несколько предложений по использованию кода, но я не знаю, как изменить их как команду и вставить в пользовательский интерфейс рекордера.

    driver.find_element_by_xpath("//*[@id=\"attach-close_sideSheet-link\"]").click()

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете использовать try / catch, чтобы элемент закрывался только при обнаружении:

try:
    elem = webdriver.find_element_by_xpath(xpath)
    elem.click()
except NoSuchElementException:

...

В качестве альтернативы, вы можете использовать инструмент Anwendo [1] для записи теста, есть кнопка «Всегда закрывать всплывающее окно», которая позволяет выбрать всплывающее окно, которое всегда закрывается, если оно появляется. Отказ от ответственности: я разработчик Anwendo

[1] https://chrome.google.com/webstore/detail/anwendo-tests-selenium-id/demcpjgmmahioppkfbdlmahnphfocnch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...