下面是我的代码。有时driver.getCurrentUrl()返回“ about:blank”,在这种情况下,我试图使用javascriptexecutor获取当前网址,但它也返回“ about:blank”。 正确的域名越来越多,但我需要当前的URL,而不是域名。 尝试了等待,页面刷新和javascriptexecutor选项,如代码所示。但是没有运气。是否还有其他方法可以每次都获取正确的当前网址,而不是“ about:blank”?
public void verifyLinks(WebDriver driver, String mainPage, String expectedUrl) {
try {
JavascriptExecutor js = (JavascriptExecutor) driver;
Set<String> a = driver.getWindowHandles();
System.out.println("window size- " + a.size());
if (a.size() > 1) {
switchToNextWindow(driver);
Thread.sleep(1000);
if (driver.getCurrentUrl().equals("about:blank")) {
//driver.navigate().refresh();
//js.executeScript("return document.readyState").toString().equals("complete");
String DomainUsingJS = (String) js.executeScript("return document.domain");
String browserUrl = (String) js.executeScript("return window.top.location.href.toString()");
String url = js.executeScript("return document.URL;").toString();
System.out.println("Domain-" + DomainUsingJS);
System.out.println("Browser url- " + browserUrl);
System.out.println("url- " + url);
}
//softAssert.assertEquals(driver.getCurrentUrl(), expectedUrl);
System.out.println("GetCurrenturl- " + driver.getCurrentUrl());
driver.close();
driver.switchTo().window(mainPage);
} else {
Thread.sleep(500);
driver.navigate().refresh();
System.out.println(driver.getCurrentUrl());
// softAssert.assertEquals(uiDriver().getDriver().getCurrentUrl(), expectedUrl);
driver.navigate().back();
Thread.sleep(500);
}
} catch (Exception e) {
e.printStackTrace();
}
}