selenium错误:org.openqa.selenium.NoSuchElementException:无法找到元素:{“method”:“name”,“selector”:“db_vaults__button”}

时间:2011-08-16 05:08:07

标签: java selenium junit

我正在尝试通过selenium自动执行任务,删除一组数据库表 相应的代码是

WebElement element=null;
while((element = driver.findElement(By.name("db__button"))) != null){ driver.findElement(By.name("db__button")).click(); driver.findElement(By.name("ConfirmButton")).click(); }

但是我收到以下错误: -

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"name","selector":"db_vaults__button"} For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html

只要数据库中有表,但只有表没有剩下的表,GUI就不会显示任何列表(这是正确的),并且db__button不在页面上,因此{ {1}}失败 我想这个代码中缺少一些东西,试图在循环中删除一些表 堆栈跟踪中建议的链接没有任何信息 任何想法?

感谢。

2 个答案:

答案 0 :(得分:2)

您可以执行以下提及的操作:

try {
        element = driver.findElement(By.name("db__button"));
        driver.findElement(By.name("db__button")).click();
        driver.findElement(By.name("ConfirmButton")).click();
    } catch (NoSuchElementException e) {

    }

上面的代码将尝试找到你的按钮,如果找不到它会抛出异常。当找不到元素(db_button)时,你可以在catch块中编写代码(如果有的话)。

答案 1 :(得分:0)

有几种选择。我推荐这些。 创建一个方法或Web驱动程序扩展,如下所述。

    var elements = driver.FindElements(by);
    return (elements.Count >=1) ? elements.First() : null;