【问题标题】:Intermittent Selenium element not found, even after reporting element present即使在报告元素存在之后,也未找到间歇性硒元素
【发布时间】:2011-05-26 17:50:41
【问题描述】:

我在 Selenium 中遇到了一个问题,该问题在我的测试套件中反复出现,报告元素显然不存在,Selenium 甚至通过isElementPresent() 报告它们。

例如,我有一个带有文本字段的页面加载。 selenium.waitForPageToLoad() 完成后,selenium 间歇性地报告文本字段丢失。找出这是否是 时间问题,我在页面加载后添加了Thread.sleep(5000),并验证 元素存在:

logger.debug("Element present status: " + selenium.isElementPresent(elements.get("File Path Text Field")));

奇怪的是,每次我运行脚本时,页面加载都没有问题。在此期间 5秒睡眠我可以清楚地看到文本字段。上面的记录器语句每次都报告 存在的元素为“true”。下一行代码是

selenium.type("something");

不管它是否报告元素存在与否,这都是胡扯。有没有其他人遇到过这样的问题并知道如何解决?

提前致谢。

【问题讨论】:

    标签: object selenium


    【解决方案1】:

    如果这是一个间歇性问题并且 selenium 经常发现元素,那么它应该是一个时间问题。以下是我将尝试解决此问题的两个步骤:

    1. isElementPresent 更改为isVisible。很多时候,我看到isElementPresent 通过了isVisible 失败的地方。

    2. 假设您使用 IDE 对测试进行编码,请在 selenium.type 命令之前使用断点并执行该命令。如果 selenium 可以在此断点执行期间“始终”找到元素,那么请放心,您有时间问题。

    【讨论】:

      【解决方案2】:

      试试 selenium.type(elements.get("文件路径文本字段"), "something"); 由于 selenium.type 方法需要两个参数,即。定位器和值。

      【讨论】: