1

我正在尝试使用 selenium webdriver 进行测试。我的 selenium 版本是 2.33,浏览器是 Firefox。脚本语言是python

现在,当我调用该方法时,find_element_by_xpath(blabla)如果小部件不存在。该程序只是卡在那里,没有显示异常。它只是卡住了。顺便说一句,我已经尝试过,find_element_by_id并将Firefox 更改为 3.5、14.0、21.0、22.0。问题总是出现。find_element_by_namefind_elements

有人遇到过这个问题吗?我只想要一个例外,而不仅仅是卡住。帮助...

4

2 回答 2

2

selenium.common.exceptions.NoSuchElementException如果未找到元素,则find_element_*引发。

find_elements_*如果未找到元素,则返回空列表。

这两个功能都不会卡住。

根据Selenium 文档

4.1。按 ID 定位

当您知道元素的 id 属性时使用它。使用此策略,将返回 id 属性值与位置匹配的第一个元素。如果没有元素具有匹配的 id 属性,则会引发 NoSuchElementException。

...

4.2. 按名称定位

当您知道元素的名称属性时使用它。使用此策略,将返回 name 属性值与位置匹配的第一个元素。如果没有元素具有匹配的名称属性,则会引发 NoSuchElementException。

于 2013-07-29T08:48:33.250 回答
0

如果您确定该元素在您的文档中,您可以使用 WebDriverWait 功能。您应该在开头定义 WebDriverWait ,from selenium.webdriver.support.ui import WebDriverWait如果您之前没有定义from selenium.webdriver.common.by import By,则使用WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "blabla"))) 这就是我们需要做的。我希望这能帮到您。

于 2013-09-04T06:28:28.597 回答