Java 如何知道webDriver已成功打开URL

Java 如何知道webDriver已成功打开URL,java,selenium,selenium-webdriver,assert,Java,Selenium,Selenium Webdriver,Assert,如何知道WebDriver在driver.get(appURL)之后成功打开了URL?我可以看到它在浏览器中很好地打开。但我想以编程的方式确保。 嘿这里我询问driver.get(appURL)是否返回http响应之类的响应代码。或者我必须从网页中找到一个ID并找到它,然后做出结论,但这种方法似乎太原始了。我正在寻找更简单的解决方案。有人建议assertTrue,但Eclipse给出长时间错误的某些原因。最简单的方法是在您打开的url的页面标题上断言: String actualTitle =

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

最简单的方法是在您打开的url的页面标题上断言:

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

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

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);
}

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

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

用简单的语句试试这个

    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");
    }

作为
最终用户
我们真的不必担心
Web驱动程序
实例是否成功打开URL,因为一旦
Web驱动程序
实例请求
URL
,浏览器客户端就会打开网页/网站(默认情况下)返回
文档。readyState作为
完成
返回到
WebDriver
实例,然后执行下一行代码

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

  • -
    文档仍在加载中
  • eager
    -
    文档是交互式的
  • 正常
    -
    文档已完成

  • 因此,我们可以编写脚本来配置
    实例,以根据您的要求进行响应。

    @并从
    Junit
    Assert.assertTrue
    。更新了答案。请参阅:SO上的期望是,用户提出问题时不仅要进行研究以回答自己的问题,还要共享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:可能的副本