java - (Java) 如何使用 Selenium 验证外部链接重定向?

标签 java selenium selenium-webdriver testng selenium-chromedriver

大家好!

请查看我的代码,我正在尝试验证我当前的网页是否将被重定向到外部网站,在我的例子中是 Google Play(在同一选项卡中打开 Google Play)。我想我做错了,因为它在 FireFox 中通过,但在 Chrome 中失败,这是我的代码...

String currentURL1 = driver.getCurrentUrl();

profilePage.clickOnGooglePlayLink();

String currentURL2 = driver.getCurrentUrl();

Thread.sleep(3000);

Assert.assertNotEquals(currentURL1, currentURL2, "Failed Redirected to Google Play");

log.info("Redirected to Google Play!");

我试图将其断言为 NotEquals,对于这种情况还有其他解决方案吗? 谢谢你的时间! My code

最佳答案

当以下行失败时,这是非常正确的:

Assert.assertNotEquals(currentURL1, currentURL2, "Failed Redirected to Google Play");

分析

如果您查看 assertNotEquals 的文档,签名是以下之一:

  • void org.testng.Assert.assertNotEquals(Object actual1, Object actual2)
  • void org.testng.Assert.assertNotEquals(Object actual1, Object actual2, String message)

这里都是 assertNotEquals() 方法采用 Object 作为 argument并执行evaluation .

但是在您的代码中,而不是 Object 您已通过 currentURL1 currentURL2 并且它们都是字符串,如下所示:

String currentURL1 = driver.getCurrentUrl();
//
String currentURL2 = driver.getCurrentUrl();
//
Assert.assertNotEquals(currentURL1, currentURL2, "Failed Redirected to Google Play");

因此,当两个字符串都转换为 Objects,比较失败 assertNotEquals() 方法不采用 String 作为 argument

解决方案

如果您想比较两个字符串,更好的选择是以下任一:

  • void org.testng.Assert.assertEquals(String actual, String expected)

  • void org.testng.Assert.assertEquals(String actual, String expected, String message)

关于java - (Java) 如何使用 Selenium 验证外部链接重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012665/

相关文章:

linux - 在没有 GUI 的 Linux 机器上通过 jenkins 执行 Selenium 测试(仅限 CLI)- HEADLESS 模式

java - TestNG 中的默认监听器是什么,我在哪里可以找到这个列表?

java - 抛出异常以在 API 中向用户传播响应消息是最佳实践吗?

java - 在Java中解析字符串

java - 在openCV Android中为ListOfPoints的每个元素添加常量

python - 使用 selenium 的 send_keys() 发送表情符号

java - 使用 Maven 从 jar 运行我的 testNG 项目

python - 使用 Python 绑定(bind)发送键控制 + 单击 Selenium

java - 如何使用 Selenium webdriver 在组合框中输入信息并进行查找?

java - 如何使用 Selenium 注入(inject) XML 文件?