java - 使用 Java 使用 Selenium WebDriver 检查页面上是否存在或显示元素的正确方法是什么?

标签 java selenium-webdriver junit4

我正在使用 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/

相关文章:

java - Mockito:模拟私有(private)字段初始化

java - 如何使用 Mockito 注入(inject) JMS 依赖项

java - 如何用 JPA 表示三向关系?

java - java中静态字段在哪里初始化?

java - 在 Java5 中,如何获取运行应用程序的用户的全名?

java - 调用 quit() 后无法使用 WebDriver FirefoxDriver

javascript - 在 Chrome 上运行 Node js Selenium 测试用例出现错误 Error : ECONNREFUSED connect ECONNREFUSED 127. 0.0.1:63528

java - 平铺投影 Google map : Convert Distance to Screen Dimensions

java - 获取NoSuchElementException : no such element: Unable to locate element

java - 如何使用 gradle 将类添加到类路径?