【问题标题】:Selenium node ignores Firefox settings and sets its own, setting profile doesn't workSelenium 节点忽略 Firefox 设置并设置自己的,设置配置文件不起作用
【发布时间】:2012-07-19 12:08:53
【问题描述】:

我在为 Selenium 使用的 Firefox 设置代理时遇到问题。 firefox 安装是默认的(v 14.0.1,%programfiles%/mozilla firefox/)。 我使用默认配置文件启动了 firefox 并设置了代理(我不需要代理或手动代理,但有一个例外)。要测试的站点是可访问的。 (使用默认代理设置无法访问该站点)

我启动了默认的 selenium 节点

java -jar selenium-server-standalone-2.24.1.jar -role node  -hub http://localhost:4444/grid/register

如果我开始 selenium 测试 ff 打开,输入 url 但现在我得到代理错误。如果我中断测试并检查设置:代理恢复默认。在“about:config”中,我可以看到并非所有设置都是默认设置,似乎 WebDriver 已经设置了一些东西(更新关闭等)。

所以我的下一个方法是设置节点:

-firefoxProfileTemplate <my default profile folder>

但没有成功 - 似乎 selenium 完全忽略了。设置不同的配置文件也不起作用。

那么如何让firefox使用我的特殊代理设置? (我也尝试过不使用网格,使用本地 firefox 运行测试 - 同样的问题)

借助here 的技巧,我可以看到活动配置文件:“anonymous3433195750899294958webdriver-profile” 可以让webdriver不使用这个吗?

更新:似乎唯一可行的方法是在 java 中设置代理:

DesiredCapabilities FF = DesiredCapabilities.firefox();
Proxy proxy = new Proxy();
proxy.setProxyType(ProxyType.DIRECT);
FF.setCapability(CapabilityType.PROXY, proxy);

但是从长远来看,这种硬​​编码的解决方案是没有选择的,我需要独立于环境的代码,除此之外我想知道发生了什么。

【问题讨论】:

标签: firefox selenium proxy


【解决方案1】:

您可以为每个 Selenium grid 2 节点分配一个特定的 firefox 配置文件,只需设置 webdriver.firefox.profile 属性:

java -jar selenium-server-standalone-2.37.0.jar -Dwebdriver.firefox.profile=my-profile -role node -hub http://mydomain.com:4444/grid/register

  • webdriver.firefox.profile 的值必须是 firefox 配置文件名称,而不是位置或文件夹名称

http://automatictester.wordpress.com/2013/04/07/selenium-running-custom-firefox-profile/

【讨论】:

  • 我确认这适用于 Selenium 3.01,使用 selenium-grid 和 firefox 51。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 2016-08-28
  • 1970-01-01
  • 2016-09-14
  • 2016-06-25
相关资源
最近更新 更多