java - 如何使用 selenium 检查链接是否处于 Activity 状态

标签 java selenium-webdriver automated-tests testng

我有一个导航栏,右侧有 2 个链接。当您单击其中一个链接时,您将进入相应的页面,并且该链接将突出显示。我想检查运行自动化测试时是否属于这种情况。我怎样才能做到这一点?

以下是我的java代码

@Test
public void testProductNavBar(){
    assertTrue(driver.findElement(By.xpath("/html/body/nav[2]/div/div/ul/li[1]/a")).isSelected());
}

当我运行此命令时,测试失败并出现以下错误

java.lang.AssertionError at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
at org.junit.Assert.assertTrue(Assert.java:52)

我不确定这是否是解决此问题的正确方法。我对此还很陌生,因此非常感谢任何帮助!

最佳答案

这取决于链接的突出显示方式。它可能是通过 CSS 类实现的。检查该链接(右键单击它,您的浏览器将提供可让您检查它的内容),然后将其 CSS 与其他链接的 CSS 进行比较。

假设差异是一个名为“active”的类,那么您会执行类似的操作

assertTrue(driver.findElement(By.id(ID_OF_LINK)).getAttribute("class").contains("active"));

这是伪代码。您的语言/网络驱动程序可能有更好的方法来检查 WebElement 上的 CSS 类。

(旁白:您希望测试与之交互的所有内容都应该有一个 ID;在上面添加一个 ID 或要求页面作者这样做)

关于java - 如何使用 selenium 检查链接是否处于 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393688/

相关文章:

java ldapsearchException 超出 setMaxResults 大小限制

java - stopService() 方法不会停止服务

java - WebDriver 所需的功能

testing - Katalon studio - 只允许本地连接 - 终端问题

python - 如何删除 Squish 事件处理程序?

testing - 将 TDD 应用于功能测试

面向非线性应用层协议(protocol)的Java服务器程序

java - 在Java中读取文件时如何摆脱无效标记错误?

ruby-on-rails - travis ci 和 selenium-webdriver 无法在 60 秒内获得稳定的 firefox 连接 (127.0.0.1 :7055)

python - 如何在浏览器最小化时使用 selenium webdriver 执行测试