Java 硒测试中未找到元素

Java 硒测试中未找到元素,java,selenium,Java,Selenium,我已经以java格式从Selenium IDE导出了测试用例。问题是,当我想运行它时,有一个错误element not found,我想在我的java文件中修复它。我添加了assersion,但我添加的try-and-catch包含所有错误,因此当我添加一个页面上没有的无关元素时,测试通过。我想使用isElementPresent函数而不是try and catch。知道如何使用它并修复此错误吗?谢谢 public void testUser() { try {

我已经以java格式从Selenium IDE导出了测试用例。问题是,当我想运行它时,有一个错误element not found,我想在我的java文件中修复它。我添加了assersion,但我添加的try-and-catch包含所有错误,因此当我添加一个页面上没有的无关元素时,测试通过。我想使用isElementPresent函数而不是try and catch。知道如何使用它并修复此错误吗?谢谢

public void testUser() {
        try {
            driver.findElement(By.linkText("users")).click();
            driver.findElement(By.id("createNewButton")).click();
            driver.findElement(By.id("name")).clear();
                        driver.findElement(By.id("username")).sendKeys("USER1");
            driver.findElement(By.id("password")).clear();
            driver.findElement(By.id("password")).sendKeys("123");
            driver.findElement(By.id("addUserButton")).click();
            driver.findElement(
                    By.xpath("(//a[contains(text(),'Delete user')])[3]"))
                    .click();
            driver.findElement(
        } catch (NoSuchElementException ex) {
        }
    }

    private boolean isElementPresent(By by) {
        try {
            driver.findElement(by);
            return true;
        } catch (NoSuchElementException e) {
            return false;
        }
    }
}
试试这个

!driver.findElements(locator).isEmpty()
但在这种情况下,最好使用库来获取清晰的代码

比如说

WebElementMatchers.exists([yourElement])

谢谢,但是如果我有多个元素呢?例如,我有用户名、密码和用户按钮。我应该这样写:如果!driver.findElementspassword.isEmpty然后driver.findElementBy.idpassword.sendKeys123?用户名也是一样吗?你可以按照你描述的那样做,但这不是一个明确的方法。使用Html元素库。您可以像描述对象一样描述您的登录表单,并轻松地使用它。请看github链接上的示例。代码看起来像loginForm.password.typelogin。我还想知道为什么预期的元素没有出现?也许你应该只是等待他们的出现。若找不到元素,那个么跳过操作是不好的。您的登录字段可以消失,但在这种情况下您的测试将通过。我现在无法更改HTML元素,除此之外,更改为driver.findElementslocator.isEmpty会引发错误