我正在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/