java - Selenium 查找页面是否已加载?

标签 java selenium selenium-webdriver automation

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

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

如果服务器正常运行,上面的代码可以正常工作。有时服务器可能会关闭,然后页面将无法加载。现在,如果页面未加载,如何返回“failure”字符串?

谢谢!

最佳答案

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

第一个解决方案

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

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

第二种解决方案

您必须检查网站每个页面中是否存在某个元素(例如 Logo 或主页按钮)。假设这个元素的 ID 是“foo”,你可以这样做:

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

关于java - Selenium 查找页面是否已加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24608037/

相关文章:

java - 为什么JVM不支持强制类/类加载器卸载?

java - 如何在动态下拉列表中选择一个元素?

java - 如何通过Selenium Webdriver Java单击覆盖标记下的Webelement

java - 如何在后台运行 selenium webdriver?

python Selenium : Looking for ways to print page load time

java - 如何在CF中获取java类

java - 自定义 JSP 标记 - 检测是否存在其他实例

java - 将参数链接到函数

python - 在 python、Windows Anaconda 中找不到 Chromedriver

c# - Selenium 通过 XPath 获取元素