Как сделать аналог selenium ide в поиске элемента, например: поиск элемента по xpath, если не найден в течении implicitly_wait(5) - скипнуть и приступить к поиску id, если найден, то вывести “ок” и не приступая к поиску id, приступить к следующему шагу.
Я пытался сделать через if\elif\else, try\execpt. Знаний и примеров что нашел - не хватило справиться.
У меня получилось только пропустить шаг, если элемент не найден и продолжить тестирование, но условие задать не получилось кликнуть по xpath или class_name например.
Код без условия:
try:
logo_xpath = driver.find_element_by_xpath(home)
logo_xpath.click()
print(‘logo xpath - pass’)
except NoSuchElementException:
print(‘xpath - failed’)
Логи и ошибка (если ввожу if else) вот такая …
File “C:\Users\anton\PycharmProjects\tfgku\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File “C:\Users\anton\PycharmProjects\tfgku\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File “C:\Users\anton\PycharmProjects\tfgku\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “C:\Users\anton\PycharmProjects\tfgku\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“xpath”,“selector”:"//*[@xpath"}
(Session info: chrome=83.0.4103.116)
Версии ОС и софта следующие …
windows 10, chrome 83