selenium - Webdriver 中的 boolean 变量

标签 selenium webdriver boolean

我在 Webdriver 中定义了 Boolean 变量,支持如下:

boolean r1 = selenium.isTextPresent("something");

我在 while 循环中使用了它。我想将我的代码转换为 Webdriver 代码,我尝试过:

boolean jr1 = driver.findElement(By.linkText("something")) != null;

但它仅在存在文本且值为 true 时才有效。当值应该作为 false 返回到我的变量时,我在控制台中收到错误:

Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Unable to locate element: {"method":"link text","selector":"something"}

您能给我一些建议吗?

最佳答案

我通过编写返回 true 或 false 的 isElementPresent 方法解决了这个问题。 编辑-刚刚在另一个答案中看到了这个确切的方法,我不再相信我写了它。显然我很久以前就发现了它并且已经使用它很长时间了,感觉就像我的一样!一切归功于原作者

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

然后您可以使用:

boolean jr1 = isElementPresent(By.linkText("Something"));

将此方法添加到基类并从中扩展您的测试类,或者将其添加到每个测试类。

关于selenium - Webdriver 中的 boolean 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16418312/

相关文章:

java - 如何使用 Selenium 测试单击链接后任何超链接的颜色变化

Python Selenium Webdriver 在 "data-original-title"中获取文本

sql - 如何在 SQL Server 中组织无限 while 循环?

symfony - 来自 Twig 中的 cookie 的 boolean 值

ios - 在 SpriteKit 中使用另一个场景的 boolean 值

selenium - ReportNG不提供任何报告

python - Selenium with/Firefox 88 更改为 navigator.webdriver

java - 如何使用 Java 和 Selenium 计算网页上的元素

r - 单击下一步按钮 :rseleniun

javascript - WebDriver executeAsyncScript 与 executeScript