lol*_*ter 43 python selenium exception selenium-webdriver
有时在页面上我会寻找一个可能存在或不存在的元素.我想尝试/捕获这个案例,NoSuchElementException
当某些HTML元素不存在时,selenium会抛出.原始例外:
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/fxdriver@googlecode.com/components/driver_component.js:8899)
at FirefoxDriver.prototype.findChildElement (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/fxdriver@googlecode.com/components/driver_component.js:8911)
at DelayedCommand.prototype.executeInternal_/h (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/fxdriver@googlecode.com/components/command_processor.js:10840)
at DelayedCommand.prototype.executeInternal_ (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/fxdriver@googlecode.com/components/command_processor.js:10845)
at DelayedCommand.prototype.execute/< (file:///var/folders/6q/7xcjtgyj32nfc2yp_y5tr9pm0000gn/T/tmp63Mz2a/extensions/fxdriver@googlecode.com/components/command_processor.js:10787)
Run Code Online (Sandbox Code Playgroud)
具有讽刺意味的是,它不会让我抓住它之前抛出的这个例外吗?代码在这里:
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)
Run Code Online (Sandbox Code Playgroud)
错误在这里:
NameError: name 'NoSuchElementException' is not defined
Run Code Online (Sandbox Code Playgroud)
谷歌搜索/文档没有任何结果......而且让我感到奇怪的是,硒很好地抛出一个例外但却无法捕获它.
Ste*_*nes 108
尝试要么elt.NoSuchElementException
还是driver.NoSuchElementException
因为它是在其中的一个范围大概定义.或者,您可能必须使用from selenium import NoSuchElementException
它来将其纳入范围.
更好的是: from selenium.common.exceptions import NoSuchElementException
归档时间: |
|
查看次数: |
46154 次 |
最近记录: |