繁体   English   中英

验证元素是否存在硒

[英]verify element existence selenium

我知道这个问题以前已经被问过了。 但是即使查看了API,我也无法弄清楚该如何做。

我想通过网络抓取数据,并且有以下代码:

browser = webdriver.Firefox()
browser.get(url)
browser.find_element_by_xpath('//path')

现在在find_element部分执行之前。 我想知道该元素是否确实存在。 我尝试了以下方法:

try:
    browser.find_element_by_xpath('//path')
except NoSuchElementException:
    print ('failure')

if (browser.find_element_by_xpath('//path')[0].size() == 0):
    print ('failure')

但是它们都不起作用,即使API指出size()是WebElement的可调用函数,并且该异常由find系列方法抛出。 我不明白为什么这些都不起作用。 但是,如果有人可以给我一个解释和一个可行的例子,我将不胜感激。

如果缺少该元素,则第一个代码段应引发NoSuchElementException 如果不这样做,那么从您的问题信息中不清楚为什么会这样。 (或者也许您期望它找不到一个元素,但是它确实找到了一个?)

第二个代码段无法正常工作,因为find_element_...方法返回的是WebElement对象,而不是对象列表。 您必须执行以下操作:

if len(browser.find_elements_by_xpath('//path')) == 0:
    print ('failure')

请注意复数find_elements_...用于查找复数返回列表中元素的函数,如果未找到任何内容,则列表长度为零。

顺便说一下, WebElement对象上的size()方法返回元素的渲染大小,即其在页面上的高度和宽度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM