switch_to select_by_value example con code python exception selenium selenium-webdriver

select_by_value - Python Selenium webscraping "NoSuchElementException" no reconocido



selenium webdriver python windows (1)

Pruebe elt.NoSuchElementException o driver.NoSuchElementException ya que probablemente se haya definido en el alcance de uno de ellos. Alternativamente, puede que tenga que usar from selenium import NoSuchElementException para ponerlo dentro del alcance.

Mejor aún: from selenium.common.exceptions import NoSuchElementException

A veces, en una página, buscaré un elemento que puede o no estar allí. Quería probar / atrapar este caso con una NoSuchElementException , que el selenio arrojaba cuando ciertos elementos HTML no existían. Excepción original:

NoSuchElementException: Message: u''Unable to locate element: {"method":"css selector","selector":"#one"}'' ; Stacktrace: at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/[email protected]/components/driver_component.js:8899) at FirefoxDriver.prototype.findChildElement (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/[email protected]/components/driver_component.js:8911) at DelayedCommand.prototype.executeInternal_/h (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/[email protected]/components/command_processor.js:10840) at DelayedCommand.prototype.executeInternal_ (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/[email protected]/components/command_processor.js:10845) at DelayedCommand.prototype.execute/< (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/[email protected]/components/command_processor.js:10787)

Irónicamente, ¿no me dejará detectar esta excepción que estaba lanzando antes? Codifique aquí:

elt = driver.find_element_by_css_selector(''.information'') try: dat1 = elt.find_element_by_css_selector(''#one'').text dat2 = elt.find_elements_by_css_selector(''#two'')[1].text text = dat1 + dat2 except NoSuchElementException: text = elt.find_element_by_css_selector(''#all'').text item.set_description(text)

Error aquí:

NameError: name ''NoSuchElementException'' is not defined

La búsqueda de Google / documentación no tuvo ningún resultado ... y me parece extraño que el selenio esté bien lanzando una excepción pero no puede atraparlo.