Я использую скрипт автоматизации с веб-драйвером selenium. Обычно это работает нормально, но иногда содержимое на странице меняется.
Если искомого элемента нет, он падает вместо выполнения оператора else.
Я пытался использовать другую функцию с try и NoSuchElementException, но я получаю другую ошибкуabout NoSuchElementException.
Это оператор if else:
#Look for link text "Stores"
find_store = driver.find_element_by_link_text('Stores')
if find_store:
find_store.click()
else:
driver.get("https://example.com/myaccount")
time.sleep(5)
Это оператор try:
try:
find_store = driver.find_element_by_link_text('Stores')
if find_store.is_displayed():
find_store.click() # this will click the element if it is there
print("Store found, all good.")
except NoSuchElementException:
driver.get("https://example.com/myaccount")
print("Store was not found, visiting base URL to search for store")
time.slep(5)
В первом сценарии я ожидаю его поискаэлемент. Если его там нет, перейдите по URL, чтобы я мог найти там элемент. Но он никогда не открывает URL, и я получаю эту ошибку:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:
Во втором сценарии я ожидаю найти элемент. Если элемента нет, он должен посетить базовый URL и повторить попытку позже в коде. Однако здесь я получаю эту ошибку:
except NoSuchElementException:
NameError: name 'NoSuchElementException' is not defined
Я хотел бы узнать, как избежать сбоя сценария и выполнить альтернативное действие, если элемент отсутствует. Спасибо.