我正在尝试使用selenium webdriver进行测试。我的selenium版本是2.33,浏览器是Firefox。脚本语言是python
现在我调用方法find_element_by_xpath(blabla)
如果小部件不存在。该程序只是卡在那里,没有显示异常。它只是卡住了。顺便说一下,我尝试了find_element_by_id
,find_element_by_name
,find_elements
并将Firefox更改为3.5,14.0,21.0,22.0。问题总是出现。
有人遇到过这个问题吗? 我只是想要一个例外而不仅仅是卡住了。帮助...
答案 0 :(得分:2)
find_element _ * 会引发selenium.common.exceptions.NoSuchElementException
。
find_elements _ * 如果找不到元素,则返回空列表。
这两个功能都没有卡住。
4.1。按ID定位
当您知道元素的id属性时使用此选项。使用此策略,第一个元素具有id属性 将返回与该位置匹配的值。如果没有元素 匹配id属性,将引发NoSuchElementException。
...
4.2。按名称定位
当您知道元素的name属性时使用此选项。使用此策略,第一个元素具有name属性 将返回与该位置匹配的值。如果没有元素 匹配名称属性,将引发NoSuchElementException。
答案 1 :(得分:0)
如果您确定元素在文档上,则可以使用WebDriverWait函数。您应该在from selenium.webdriver.support.ui import WebDriverWait
开头定义WebDriverWait,如果您未在from selenium.webdriver.common.by import By
之前定义,则使用WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "blabla")))
这就是我们需要做的。我希望这会对你有所帮助。