有时无法使用Selenium WebDriver获取移动铬中的当前URL

时间:2018-07-18 07:39:31

标签: selenium mobile chromium

下面是我的代码。有时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();
    }
}

0 个答案:

没有答案