我正在尝试将当前网址与字符串网址进行比较,但以下代码会返回false
。
driver.get("https://www.facebook.com");
System.out.println(driver.getCurrentUrl().equals("https://www.facebook.com"));
答案 0 :(得分:4)
我尝试了您的代码,driver.getCurrentUrl()
返回的网址为"https://www.facebook.com/"
由于您使用equals
进行"https://www.facebook.com"
检查,因为返回的网址末尾缺少'/'
,它将返回false。将其与返回的此网址进行比较,或使用contains()
检查返回的网址是否正确。
答案 1 :(得分:1)
而不是使用equals()
尝试使用startsWith()
:
driver.getCurrentUrl()。startsWith( “https://www.facebook.com”)
或contains()
:
driver.getCurrentUrl()。包含( “https://www.facebook.com”)
这种方法会好得多。
要使用equals()
,您需要 完全相同的 路径。
但是使用contains()
或startsWith()
,您可以检查预期的行为并进行断言。
我创建了一些演示代码:
public class FacebookDemoTest {
private WebDriver driver;
@BeforeMethod
public void setUp() {
driver = DriverManager.getInstance();
driver.get("https://www.facebook.com");
}
@Test
public void testContainsAndStartsWith() throws Exception {
System.out.println("CURRENT URL:" + driver.getCurrentUrl());
Assert.assertTrue(driver.getCurrentUrl().contains("https://www.facebook.com"));
Assert.assertTrue(driver.getCurrentUrl().startsWith("https://www.facebook.com"));
}
@Test
public void testEquals() throws Exception {
System.out.println("CURRENT URL:" + driver.getCurrentUrl());
Assert.assertTrue(driver.getCurrentUrl().equals("https://www.facebook.com"));
Assert.assertTrue(driver.getCurrentUrl().contentEquals("https://www.facebook.com"));
}
@AfterMethod
public void tearDown() throws Exception {
DriverManager.closeQuietly();
}
}
结果如下:
来自控制台日志的当前URL:
CURRENT网址:https://www.facebook.com/