0

selenium webdriver在使用( chromedriver) 和ruby和测试 Chrome 上的网站时selenium grid 2,我手动单击Allow以跟踪我的位置。

从那时起,每一次新的运行都从 Chrome 浏览器开始跟踪我的位置,不再请求许可。

据我了解,这不应该发生,因为 Selenium 应该创建一个新的配置文件并且不记得之前运行中的任何用户交互。

我还尝试以管理员身份(手动)打开 Chrome 浏览器并更改设置以忘记为正在测试的站点的位置服务设置的任何权限。但这也没有帮助。

我也尝试过重新启动电网,但这也无济于事。

有谁知道如何让浏览器忘记我的许可?

更新

启动驱动程序的代码

@driver = Selenium::WebDriver.for(:remote, :url => @sel_grid_url, :desired_capabilities => @browser)
4

2 回答 2

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)
于 2013-04-15T22:27:56.200 回答
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)

有关使用开关的信息,请参阅 RubyBindings 文档https://code.google.com/p/selenium/wiki/RubyBindings#Chrome

您可以在此处查看 Chrome 开关列表:http: //peter.sh/experiments/chromium-command-line-switches/

更新

看起来 Chromedriver 需要先关闭测试默认值,然后才能设置一些设置(如地理位置跟踪)(根据此处找到的 ChromeDriver Capabilities wiki 的修订版:http ://wiki.chromedriver.googlecode.com/git-history /c790ec6b0b32a31a8797a0fa97b7f4dccb4f5da4/CapabilitiesAndSwitches.wiki )。

我更新了上面的代码以包含要设置为关闭测试默认值的配置(请参阅http://code.google.com/p/chromium/issues/detail?id=113884http://code.google.com /p/selenium/issues/detail?id=4622)。

请确保您使用的是 selenium-webdriver 2.26.0 或更高版本。

于 2013-04-26T20:26:40.527 回答