我正在使用Selenium网络驱动程序。我有以下方法导航到页面。
public String navigate(String url){
driver = new FirefoxDriver();
driver.get(url);
return "Success";
}
如果服务器启动,上面的代码工作正常。有时服务器可能会关闭,然后页面将不会被加载。现在,如果未加载页面,如何返回“失败”字符串?
谢谢!
答案 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
可以帮助确定是否由于服务器关闭或其他原因而加载页面。
这是链接
答案 2 :(得分:0)
Dave Haeffner有一个很好的解决方案,可以使用带有webdriver配置的代理来检查状态代码。
http://elementalselenium.com/tips/17-retrieve-http-status-codes
示例在python中,但是python和java之间的API非常接近。从我自己实施的提示中找到java-analagous方法我没有太大困难。
该网站有很多好消息。