Selenium 等于()不等于';硒不能像预期的那样起作用
我试图将当前URL与字符串URL进行比较,但以下代码返回Selenium 等于()不等于';硒不能像预期的那样起作用,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我试图将当前URL与字符串URL进行比较,但以下代码返回false driver.get("https://www.facebook.com"); System.out.println(driver.getCurrentUrl().equals("https://www.facebook.com")); 不要使用equals()尝试使用startsWith(): driver.getCurrentUrl().startsWith(“”) 或包含(): 驱动程序.getCurren
false
driver.get("https://www.facebook.com");
System.out.println(driver.getCurrentUrl().equals("https://www.facebook.com"));
不要使用
equals()
尝试使用startsWith()
:
driver.getCurrentUrl().startsWith(“”)
或包含()
:
驱动程序.getCurrentUrl()包含(“”)
这种方法会更好。使用
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:
当前URL:
我尝试了您的代码,而
驱动程序返回的URL是https://www.facebook.com/“
因为您正在使用进行等于的检查https://www.facebook.com“
,它将返回false,因为返回的URL末尾缺少”/“
。将其与返回的URL进行比较,或者使用contains()
检查返回的URL是否正确。欢迎使用stack!将driver.getCurrentUrl()
放入一个变量中,并让我们知道当您逐步执行代码时返回的是什么。打印变量给我,但它仍然返回false。抱歉,我不清楚,当您逐步执行代码时,让我们知道driver.getCurrentUrl()
返回的是什么,它应该是字符串,而不是布尔值是,但是绳子是什么?是不是“http://someotherurlthanyouwereexpecting?“
很抱歉刚才看到了您编辑的评论。看起来您正在比较https://www.facebook.com
与https://www.facebook.com/
它们不相等(请注意末尾的斜杠)。但是很难说是否使用了未格式化的链接。如果返回的URL以facebook.com开始,但以与主页完全不同的内容结束,比如一些用户页面等,那么您的.contains()
测试将在不应该通过时通过。最好的答案是将它与带有.equals()
的“”进行比较,这样你就可以确定它是否正确。@JeffC如果你确切地知道要得到哪条路径,你就必须使用equals()