大家好!
请查看我的代码,我正在尝试验证我当前的网页是否将被重定向到外部网站,在我的例子中是 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/