selenium - pageLoadTimeout 在 Selenium 中不起作用 - Java

标签 selenium webdriver selenium-firefoxdriver pageloadtimeout

我正在Linux主机上测试一个网站。我访问的页面无限加载,所以我尝试为selenium设置pageLoadTimeout。 Firefox 已正确触发,但 URL 未在网址栏中加载/导航/添加。只有空白的 Firefox 窗口。我也没有看到任何错误。

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS);
driver.get("http://www.example.com");

但是,如果我删除 driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS); 代码工作正常

Selenium 版本:3.14.0;

gecko 驱动程序:18 - linux(使用 gecko 16,17 测试也存在同样的问题)

浏览器:firefox-52

操作系统/平台:linux

如果出现此类问题,我如何确保我的驱动程序在 5 分钟后自行退出。主机仅支持 Firefox 52。

我检查了这个link但并没有解决我的问题。

谢谢 Jk

最佳答案

您可以为浏览器设置页面加载策略,这将使页面无需等待完整页面加载即可执行其他 Selenium 命令。下面是 Java 中的示例代码片段。支持三个值:

正常

此策略导致 Selenium 等待整个页面加载(下载并解析 html 内容和子资源)。

渴望

此策略导致 Selenium 等待 DOMContentLoaded 事件(仅下载和解析 html 内容)。

此策略会导致 Selenium 在完全接收到初始页面内容(下载了 html 内容)后立即返回。

默认情况下,当 Selenium 加载页面时,它遵循正常 pageLoadStrategy。

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("pageLoadStrategy", "eager");
FirefoxOptions opt = new FirefoxOptions();
opt.merge(caps);
WebDriver driver = new FirefoxDriver(opt);
driver.get("https://www.google.com/");

如果您只对页面的 HTML 感兴趣,最好使用“热切”策略。

关于selenium - pageLoadTimeout 在 Selenium 中不起作用 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52726804/

相关文章:

java - webdriver firefoxprofile 用户代理未按预期工作

google-chrome - 如何通过 selenium 服务器独立命令行指定 Chrome 二进制位置?

c# - OpenQA.Selenium.NoSuchElementException 未处理 + C# + 另一个网站

Python Selenium在ubuntu中设置firefox配置文件的路径

java - 无法在此代码中初始化 "document"

selenium - 无法通过 Selenium webdriver 中的 By.link 文本找到元素

java - 使用 Selenium Grid 时的 ChromeDriver 日志记录

java - 将浏览器从后移到前? ( Selenium Web 驱动程序,Java)

python - 有谁在 iOS 上成功安装了 Selenium 吗?

java - Selenium java 。无法定位元素