1

我只是想弄清楚当他们将配置文件加载到 FirefoxDriver 时,是否有其他人看到他们的 Selenium 测试运行速度明显变慢(需要 2 分钟以上才能启动),如下所示: Selenium a default profile for the Firefox

上述帖子的问题发起人在评论中提到了这个问题,但从未更新他是否修复了这个缓慢问题。

在某些时候,我的测试停止一起运行,我开始收到错误

org.openqa.selenium.WebDriverException: java.io.Exception: unexpected end of stream on Connection. 

如果我从 FirefoxDriver 调用中删除配置文件选项,则测试会在选择“运行”后的 5 秒内运行,但测试失败,因为 Selenium 使用的默认配置文件没有我访问我的站点所需的证书。

其他人在同一条船上或知道如何解决这个问题?您如何调整配置文件中保存的信息量?

  • 火狐版本:60.3.0
  • 硒版本:3.14.0
  • GeckoDriver 版本:0.23.0
  • 操作系统:Linux Redhat 6
  • Eclipse 版本:霓虹灯

代码:

WebDriver browser;
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.get("SeleniumUser");
FirefoxOptions options = new FirefoxOptions().setProfile(ffprofile);
browser = new FirefoxDriver(options); // takes a long time and eventually fails here
browser.get("site.url");

如果您从新的 FirefoxDriver() 调用中取出 {options} 参数,测试将在大约 5 秒后开始。如上所述,保留这些选项会导致错误“org.openqa.selenium.WebDriverException: java.io.Exception: unexpected end of stream on Connection”。

4

1 回答 1

2

FirefoxProfile当您启动通过GeckoDriver加载新/现有的过程时,底层框架包括:

  • 驱动程序(硒绑定)
  • 服务器(GeckoDriver )
  • 客户端(Firefox 浏览器)

需要初始化并与不同的内部模块互通。

您可以在无法解析构造函数 FirefoxDriver(org.openqa.selenium.firefox.FirefoxProfile)中找到有关如何FirefoxProfile通过GeckoDriver访问的详细讨论

另外保存的:

  • 书签
  • 密码
  • 用户偏好

当现有加载时也会加载FirefoxProfile。因此需要一些额外的时间。

您可以在 webdriver.FirefoxProfile() 中找到详细讨论:是否可以使用配置文件而不复制它?

于 2019-01-07T10:13:35.700 回答