2016-12-05 30 views
1

我在更新我们的Selenium测试使用Firefox v50.x发挥作用的工作,因此我需要让他们与geckodriver v0.11兼容设置用户代理在Firefox中使用geckodriver v0.11

现在似乎现在初始化使用火狐::公司简介中的webdriver使崩溃的webdriver,因为它不承认任何在配置文件中设置字段:

ArgumentError 
unknown option: {:profile=>#<Selenium::WebDriver::Firefox::Profile:0x00000005088bf8 @model="selenium_profile", @native_events=false, @secure_ssl=false, @untrusted_issuer=true, @load_no_focus_lib=false, @additional_prefs={}, @extensions={}>} 

我仍然可以让测试通过只是没有用初始化运行的webdriver但是我们的一些测试将会失败,因为他们要求我们有一个特定的用户代理。

阅读文档后,似乎你现在应该使用MOZ:firefoxOptions此功能,但我无法找到任何代码示例来说明如何做实际使用MOZ:firefoxoptions任何东西

谁能给我一个代码示例显示如何使用moz:firefoxOptions或任何其他方式使用selenium-webdriver 3.0.3和geckodriver v0.11设置firefox用户代理?

回答

1

目前您目前无法通过geckodriver的配置文件选项传递配置文件。这是记录在Issue #2933,我目前有一个PR(PR #3174)在添加此功能。

现在,你应该能够做到以下几点:

通过两种

profile = Selenium::WebDriver::Firefox::Profile.new('/path/to/profile') 

profile = Selenium::WebDriver::Firefox::Profile.from_name('name_of_profile') 

然后

caps = Selenium::WebDriver::Remote::W3CCapabilities.firefox 
caps[:firefox_options] = { profile: profile.as_json['zip'] } 
driver = Selenium::WebDriver.for(:firefox, desired_capabilities: caps) 

创建配置文件210获取代码

在一个侧面说明翻译成moz:firefoxOptions,你也可以与传统的FF驱动程序而不是geckodriver因为你是对FF50

+0

由于运行运行!这是一种麻烦,必须在Firefox中为我们希望使用的不同用户代理创建多个配置文件,但似乎这是可行的 – Metareven