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

时间:2017-12-28 18:38:35

标签: java selenium selenium-webdriver testng selenium-chromedriver

嗨,大家好!

请查看我的代码,我正在尝试验证我的当前网页是否会重定向到外部网站,在我的情况下是Google Play(在同一个标​​签中打开Goog​​le 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

2 个答案:

答案 0 :(得分:1)

Assert.assertEquals(actual,expected,message): - assertEquals断言可用于比较两个字符串,boolean,byte [],char,double,float,int等。并基于断言结果。

Assert.assertNotEquals(实际,预期,消息): -  selenium中的断言WebDriver是assertNotEquals断言。它的功能与assertEquals断言相反。 表示如果双方的值不匹配,则此断言将通过,否则将失败。在这里,您可以编写自己的失败条件消息。

请参阅此link

答案 1 :(得分:1)

当以下行失败

时,这是非常正确的
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)