我想在点击链接后获取该页面的当前网址。当我点击链接(第一页)时,链接打开一个新页面(第2页),我想得到第二页的网址,但是当我调用GetCurrentUrl()时,该方法返回第一个网址页。
这是我的代码:
String att = driver.findElement(By.linkText("Lien 2")).getAttribute("href");
driver.findElement(By.linkText("Lien 2")).click(); // Open a the 2nd page
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
String act = driver.getCurrentUrl(); // Return the url of the 1rst page; but I want the 2nd
System.out.println("act "+act+" att "+att);
assertEquals(act, att);
非常感谢您的帮助!
答案 0 :(得分:0)
而不是更改为pageloadTimeout()
,请尝试手动等待Url更改(这是我在我的代码中所做的事情,所以我想我会回答)。
WebDriverWait(driver, 30))
中的值“30”。确保按以下方式调用该函数:
try {
waitForUrl(the-url-you-want-to-wait-for);
} catch (Exception ex) {
//handle exception
}
功能:
/**
* Wait until the current page's URL changes to whatever you specify.
* @param Url The URL you want to wait for.
*/
protected static void waitForUrl(WebDriver driver, final String Url) throws Exception {
try {
(new WebDriverWait(driver, 30)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
System.out.println(d.getCurrentUrl());
return d.getCurrentUrl().toLowerCase().endsWith(Url);
}
});
}
catch (TimeoutException e) {
throw new Exception("Timeout Exception encountered while waiting for URL " + Url + ": \n" + e.getMessage());
}
}