我有一个页面,在主页之前随机显示窗口,进入网站,我有时需要填写表格,所以我使用:
@FindBy(xpath = "")
public WebElement element;
然后我尝试实施解决方案,但它失败了。
if(element.isDisplayed()){
element.click();
}else if {
do something else // if not Displayed do something else and get test true?
}
获取错误:
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element
在我的项目中,我使用java,cucumber nad testNG。我不知道该怎么做,当它在页面上找不到表单时,它会继续测试。也许我应该做更多的方法或场景?
答案 0 :(得分:0)
错误消息表示找不到该元素。
很少,
试试这个 - > driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS);
等待元素加载最多10秒后再找不到它。
答案 1 :(得分:0)
1)你需要使用这样的东西:
public WebElement [] elements = driver.findElementsBy(xpath = "The Xpath you are looking for");
if (elements)
如果随机显示的窗口出现,您的列表将不为空,将包含您要查找的元素。否则列表将为空
您的代码失败,因为您正在寻找页面中并不总是存在的元素
2)您也可以使用Try
- Catch
答案 2 :(得分:0)
这是解决方案:
@FindAll(@FindBy(xpath = ""))
List<WebElement> buttonelements
if(!buttonelements.isEmpty()){
'code here'
}
问题原因:
如果找不到匹配的元素,则使用FindBy和方法isDisplayed()会抛出NoSuchElementException。
使用FindAll和方法isEmpty()不要抛出任何suchexception,它将返回空列表。