Selenium查找页面是否已加载?

时间:2014-07-07 10:06:47

标签: java selenium selenium-webdriver automation

我正在使用Selenium网络驱动程序。我有以下方法导航到页面。

public String navigate(String url){
        driver = new FirefoxDriver();
        driver.get(url);
        return "Success";
    }

如果服务器启动,上面的代码工作正常。有时服务器可能会关闭,然后页面将不会被加载。现在,如果未加载页面,如何返回“失败”字符串?

谢谢!

3 个答案:

答案 0 :(得分:2)

您无法直接测试get()失败,因为导航器始终显示页面。您可以检查此页面是否为已知错误页面,或检查您是否在预期页面中。

第一种解决方案

这取决于导航器。当Chrome无法找到网址,firefox其他网页等时,Chrome会显示一个特殊页面。您可以测试这些网页的标题。例如,firefox错误页面标题类似于“页面加载错误”或“问题加载页面”。那么你所要做的就是:

if(driver.getTitle().equals("Problem loading page"))
   return "failure";

第二种解决方案

您必须检查网站每个页面中是否存在元素(例如徽标或主页按钮)。假设此元素的ID为“foo”,您可以执行以下操作:

if(driver().findElements(By.id("foo")).isEmpty())
   return "failure";

答案 1 :(得分:0)

如果使用页面对象模型,利用LoadableComponentClass可以帮助确定是否由于服务器关闭或其他原因而加载页面。 这是链接

https://code.google.com/p/selenium/wiki/LoadableComponent

答案 2 :(得分:0)

Dave Haeffner有一个很好的解决方案,可以使用带有webdriver配置的代理来检查状态代码。

http://elementalselenium.com/tips/17-retrieve-http-status-codes

示例在python中,但是python和java之间的API非常接近。从我自己实施的提示中找到java-analagous方法我没有太大困难。

该网站有很多好消息。