Python + Selenium
Есть приложение на python + selenium, мне нужно проверить, есть-ли на странице объект с классом #messageBoxInLine При успешной проверке никаких проблем не возникает, но если объекта на странице нет, приложение просто зависает
def msgbox():
try:
msgbox = browser.find_element_by_css_selector('#messageBoxInline').text
except NoSuchElementException:
msgbox_none = 'Таблички нет'
return msgbox_none
return msgbox
Ответы (2 шт):
Автор решения: Sergei Rudik
→ Ссылка
Делай break после сообщения, если ничего не планируешь дальше выполнять:
def msgbox():
try:
msgbox = browser.find_element_by_css_selector('#messageBoxInline').text
except NoSuchElementException:
msgbox_none = 'Таблички нет'
break
return msgbox
Автор решения: Steenkle
→ Ссылка
Вы объявили переменную, записали в нее текст, но что с ней делать не сказали, вот и он висит, а чтобы не вис никогда, ставьте таймаут с помощью библиотек:
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
Ну а Ваш код должен выглядеть с условием так:
def msgbox():
try:
if browser.find_element_by_css_selector('#messageBoxInline').text == 'нужный текст':
return 'True'
except NoSuchElementException:
return 'Таблички нет'