0

我需要使用 WebDriver 在 Firefox 中打开“首选项”页面,以便以特定于浏览器的方式清除缓存。

在调查该问题时,我找到了一个 Python 解决方案并尝试将其翻译成 Java,但 WebDriver 误解了 uri:

driver.get("about:preferences#privacy");

并发送“/about:preferences#privacy”,而不是 Firefox 不知道如何打开。

我还尝试了一种 JavaScript 方式:

driver.executeScript("window.location.replace('about:preferences#privacy');")
driver.executeScript("window.open('about:preferences#privacy');")

但这些只是被浏览器忽略了。

我假设必须有一种 Java 方式,因为这已经用 Python WebDriver 实现了(参见第一个链接)。

更新:这原来是一个非 WebDriver 问题。事实上,这源于我们正在使用的测试框架,它是围绕 Selenium - Quantum Perfecto构建的。所描述的行为不会发生在纯 Selenium 中。我向框架支持团队发送了一个请求,以解决他们代码中的问题。

4

2 回答 2

2

Selenium的自定义 Firefox 配置文件简介

你会像这样使用它:

ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("<your-profile-name>");
WebDriver driver = new FirefoxDriver(myprofile);

正如Mike 'Pomax' Kamermans所说,最好的办法是根据您的要求创建配置文件。

如果您需要以编程方式创建环境,请使用配置管理(如 Puppet/Chef/Ansible),甚至使用maven生成多个environment.properties您可以使用自定义脚本来配置(或从头开始创建)Firefox 配置文件,在这个线程中得到了回答

于 2019-08-08T23:03:16.513 回答
0

您可以使用 driver.navigate().to(); 导航到“about:preferences#privacy”;

在 FF-68、Selenium 4.0.0-alpha-2(Java 绑定)上测试

driver.navigate().to("about:preferences#privacy");
于 2019-08-09T07:04:37.427 回答