如何知道webDriver成功打开了URL

时间:2017-09-14 17:25:17

标签: java selenium selenium-webdriver assert

如何知道WebDriver在driver.get(appURL)之后成功打开了一个URL?我可以看到它在浏览器中打开很好。但我想以编程方式确保。 嘿。在这里我要问driver.get(appURL)是否返回任何响应代码,如http响应。或者我必须从网页上找到一个ID并找到它,然后得出结论,但这种方法看起来太原始了。我正在寻找更简单的解决方案。有人提出了assertTrue,但有些原因是Eclipse给出了很长的错误。

5 个答案:

答案 0 :(得分:1)

最简单的方法是断言你打开的网址的页面标题:

String actualTitle = driver.getTitle();
String expectedTitle = "YourExpectedPage"; // replace with the expected page title
org.junit.Assert.assertTrue(expectedTitle.equals(actualTitle));

答案 1 :(得分:0)

您可以等待一段时间并检查预期结果,然后检查当前网址

String currentURL = null;
WebDriverWait wait = new WebDriverWait(driver, 10);
if(driver.findElement(By.xpath("//*[@id='someID']")).isDisplayed()){ //add id or xpath
currentURL = driver.getCurrentUrl();
System.out.println(currentURL);
}

答案 2 :(得分:0)

每个浏览器都有一个默认错误页面。对于chrome我正在使用:

if(driver.findElement(By.xpath("//div[@class='error-code']")).isDisplayed()){
MessageBox.Show("chrome error page.");
}

答案 3 :(得分:0)

尝试使用简单的陈述

    WebDriver driver=new FirefoxDriver();
    driver.manage().window().maximize();
    String baseUrl="https://stackoverflow.com/";
    driver.get(baseUrl);
    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    if(baseUrl.equals(driver.getCurrentUrl()))
    {
        System.out.println("URLS are matching");
    }else
    {
        System.out.println("URLS are not matching");
    }

答案 4 :(得分:0)

作为End User我们真的不必担心 WebDriver 实例是否成功打开了网址,因为一旦 {{1} } {/ strong>实例请求WebDriver,浏览器客户端在打开网页/网站时(默认情况下)返回 URL document.readyState complete 实例,然后才会执行下一行代码。

但是,作为最终用户,我们可以将 WebDriver 实例配置为对 WebDriver 的不同可用状态进行操作。目前,Selenium在以下3个不同阶段识别 DOM

  1. document.readyState - none
  2. The document is still loading - eager
  3. The document is interactive - normal
  4. 因此,我们可以编写脚本来配置 The document is complete 实例,以根据您的要求进行响应。