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 'Таблички нет'
    
→ Ссылка