WebDriver 通过 xPath 查找元素,如果未找到元素,则不会超时,屏幕只是挂在那里。

2024-03-02

我面临一些问题,由于我的测试语句无法找到该元素,测试只是挂在那里(浏览器打开并且无法继续下一个测试)。

我的 TestStatemet 像这样:

driver.findElement(By.xpath("//input[@name='AID' and contains(@value,'sampleDataThatwillNotFound')]"));

仅当通过 XPATH 查找时测试才会挂起,通过 NAME/ID 查找时没有问题。我已经将超时设置为 60 秒,60 秒后,它仍然挂起。

以前有人遇到过这个问题吗?或者有人知道如何解决这个问题吗?


好吧,我也遇到了同样的问题,并在中找到了这个网络驱动程序 API 文档: findElement不应该用于查找不存在的元素,使用findElements(By)并断言零长度响应。

所以我用类似的东西

List<WebElement> found = driver.findElements(By.id("elementid"));
if (found.size() > 0) 
{
    // get the 1st element
} else {
    // time out
}

来解决这个问题。隐式超时可以很好地工作findElements就我而言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebDriver 通过 xPath 查找元素,如果未找到元素,则不会超时,屏幕只是挂在那里。 的相关文章

随机推荐