使用selenium webdriver
(chromedriver
)与ruby
和selenium grid 2
在Chrome上测试网站时,我手动点击了Allow
来跟踪我的位置。< / p>
从那以后,每次新的游戏开始时,Chrome浏览器都会跟踪我的位置,而不再要求获得许可。
在我的理解中,不应该发生,因为Selenium应该创建一个新的配置文件,而不记得上一次运行中的任何用户交互。
我还尝试以管理员身份(手动)打开Chrome浏览器,并更改设置以忘记为正在测试的网站的位置服务设置的任何权限。但这也没有帮助。
我也尝试重新启动网格,但这也没有帮助。
有谁知道如何让浏览器忘记我的许可?
更新
启动驱动程序的代码
@driver = Selenium::WebDriver.for(:remote, :url => @sel_grid_url, :desired_capabilities => @browser)
答案 0 :(得分:1)
试试这个..
profile = Selenium::WebDriver::Chrome::Profile.new
data = profile.as_json
caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps['chromeOptions'] = {
'profile' => data['zip'],
'extensions' => data['extensions']
}
driver = Selenium::WebDriver.for(:remote, :url => @sel_grid_url, :desired_capabilities => caps)
同时确认您已在Ask me when a site tries to track my physical location (recommended)
下检查了Settings -> Advanced Settings -> Privacy -> Content Settings -> Location
选项。
<强>更新强>
另一次尝试..
profile = Selenium::WebDriver::Chrome::Profile.new
profile['download.prompt_for_download'] = false
profile['download.default_directory'] = "/path/to/dir"
profile['profile.managed_default_content_settings.geolocation'] = 2 #Try 1 and 0 as well
data = profile.as_json
caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps['chromeOptions'] = {
'profile' => data['zip'],
'extensions' => data['extensions']
}
driver = Selenium::WebDriver.for(:remote, :url => @sel_grid_url, :desired_capabilities => caps)
答案 1 :(得分:0)
尝试使用本地WebDriver修复:
@driver = Selenium::WebDriver.for(:chrome, :no_website_testing_defaults => true, :switches => %w[--disable-geolocation])
为了远程执行此操作,我认为它可能看起来像这样:
caps = Selenium::WebDriver::Remote::Capabilities.chrome(:no_website_testing_defaults => true, :switches => %w[--disable-geolocation])
@driver = Selenium::WebDriver.for(:remote, :desired_capabilities => caps)
有关使用开关https://code.google.com/p/selenium/wiki/RubyBindings#Chrome
的信息,请参阅RubyBindings文档您可以在此处查看Chrome切换列表:http://peter.sh/experiments/chromium-command-line-switches/
<强>更新强>
看起来Chromedriver需要首先关闭测试默认设置,然后才能设置一些设置(如地理定位跟踪)(根据此处的ChromeDriver功能维基修订版本http://wiki.chromedriver.googlecode.com/git-history/c790ec6b0b32a31a8797a0fa97b7f4dccb4f5da4/CapabilitiesAndSwitches.wiki)。
我更新了上面的代码以包含配置设置为关闭测试默认值(请参阅http://code.google.com/p/chromium/issues/detail?id=113884和http://code.google.com/p/selenium/issues/detail?id=4622)。
请确保您使用的是selenium-webdriver 2.26.0或更高版本。