我正在使用 Selenium WebDriver 测试 Web 应用程序,我想知道检查元素是否存在或显示的正确方法是什么。我通常断言所有元素都出现在页面上,但它也会检查隐藏元素,在这种情况下,这也有必要检查元素是否仅在完成某些操作后才显示。例如,我单击一个链接并显示其他字段和标签,而它们之前是隐藏的。在这种情况下,我应该同时检查元素是否存在,以及它们在单击其他元素之前和之后是否显示。
我想知道这样做的正确方法是什么。检查页面上的所有元素是否过多(假设我在页面中有一些按钮、文本字段、标签、链接等)?
出于讨论的目的,我想包含一些代码片段。为了检查页面上是否存在元素,我使用了以下代码段:
public boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
要检查元素是否显示,我使用以下代码段:
public boolean isElementDisplay(By by) {
if (driver.findElement(by).isDisplayed()) {
return true;
} else
return false;
}
测试此应用程序的一个目的是检查元素是否存在以及是否正确显示。我在这里做正确的事吗?请给我你的观点。我最近开始使用 Selenium WebDriver,并且是我公司中唯一一个这样做的人......我没有任何人可以求助。任何答案表示赞赏。
最佳答案
它没有任何问题,除非您在一开始不存在的元素上调用“checkIfDisplayed”方法,它会抛出异常。我会将其修改为:
public boolean checkIfDisplayed(By by) {
if (isElementPresent(by) {
if (driver.findElement(by).isDisplayed()) {
return true;
} else
return false;
} else
return false;
}
(这可能不是编译的代码,我是C#人,但你应该明白我的意思)
它可能会对性能造成轻微影响,但总的来说你所做的一切都很好。
关于java - 使用 Java 使用 Selenium WebDriver 检查页面上是否存在或显示元素的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12275781/