【问题标题】:Watir-webdriver and Chrome57; can no longer use `browser.window`Watir-webdriver 和 Chrome57;不能再使用`browser.window`
【发布时间】:2017-04-04 14:19:41
【问题描述】:

我正在使用 Watir-webdriver、Chromedriver (v2.27) 和 Chrome (v57) 进行一些自动化

我的 spec_helper 有一行代码为 @browser.window.maximize

自从更新到 Chrome v57 后,它不再运行,因为我收到以下错误

Asset Section EULA and Intended Use The asset section behaves like eula and intended use EULA and Intended Use clicks Download and sees intended Use
 Failure/Error: @browser.window.maximize

 Selenium::WebDriver::Error::UnknownError:
   unknown error: cannot get automation extension
   from unknown error: page could not be found: chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html
     (Session info: chrome=57.0.2987.133)
     (Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Mac OS X 10.11.6 x86_64)
 Shared Example Group: "eula and intended use" called from ./spec/smoke/public_view/asset_section_dl_share_spec.rb:65
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/response.rb:70:in `assert_ok'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/common.rb:78:in `new'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/common.rb:78:in `create_response'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/default.rb:90:in `request'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/bridge.rb:649:in `raw_execute'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/bridge.rb:627:in `execute'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/bridge.rb:252:in `maximizeWindow'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/common/window.rb:117:in `maximize'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/watir-webdriver-0.6.11/lib/watir-webdriver/window.rb:96:in `block in maximize'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/common/target_locator.rb:73:in `window'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/watir-webdriver-0.6.11/lib/watir-webdriver/window.rb:200:in `use'
 # /Users/kmancusi/.rvm/gems/ruby-2.2.2/gems/watir-webdriver-0.6.11/lib/watir-webdriver/window.rb:96:in `maximize'
 # ./spec/spec_helper.rb:37:in `block (2 levels) in <top (required)>'

来自我的#spec_helper:

chrome_prefs = {
'profile' => {
  'default_content_setting_values' => { 'automatic_downloads' => 1 }
  }
}

config.before(:all) do
  @browser = Watir::Browser.new :chrome, :prefs => chrome_prefs, switches: %w(--ignore-certificate-errors --disable-popup-blocking --disable-translate)
  @browser.window.maximize
  @browser.goto site
end

我相当有信心更新到 v57 会导致此问题。 我更新之前它正在工作,并且 - 到目前为止 - 如果我注释掉 @browser.window.maximize 它会运行

有什么想法吗?

【问题讨论】:

    标签: google-chrome google-chrome-extension rspec automation watir-webdriver


    【解决方案1】:

    我遇到了同样的问题,最初通过删除 browser.window.maximize 并将以下内容添加到开关来修复它:

    --start-maximized
    

    该问题随后在 ChromeDriver 2.28 版中得到修复(最新版本为 2.29)。

    ChromeDriver 2.28 修复说明包括以下内容:

    Fixes a bug which blocked ChromeDriver automation extension from loading and thereby causing window resizing/positioning & screenshot functionalities to break.
    

    并且可以下载here

    同时检查测试输出以确保您实际使用的是已下载的新驱动程序,您会看到类似“正在启动 ChromeDriver 2.xx.xxxxxx”的内容。您可能有一些配置指向旧版本的 ChromeDriver。

    【讨论】:

    • 嗯....我将 chromedriver 更新并重新启动到 v2.29,并将我的开关更改为现在读取为 switches: %w(--start-maximized --ignore-certificate-errors --disable-popup-blocking --disable-translate),我的测试没有在最大化窗口中开始
    • 开关不应该在一个数组中,所以方括号:开关:%w[--start-maximized --ignore-certificate-errors --disable-popup-blocking --disable-translate ]
    • 做了一些额外的游戏。我可以使用--start-fullscreen 之类的东西,它会占据整个屏幕。当我使用--start-maximized 时,它的浏览器屏幕尺寸仅为 1011x1059。有没有办法修改“最大化”所指的内容?
    • 有一个单独的开关可以用来设置窗口大小:以--ash-host-window-bounds="1024x768"为例。
    猜你喜欢
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    相关资源
    最近更新 更多