请查看我的代码,我正在尝试验证我的当前网页是否会重定向到外部网站,在我的情况下是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
答案 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)
强>