【问题标题】:Edge browser crashing after initial watir-webdriver launch初始 watir-webdriver 启动后边缘浏览器崩溃
【发布时间】:2015-08-03 19:45:23
【问题描述】:

我正在使用最新的 selenium-webdriver (2.47.1) 和 watir-webdriver (0.8.0),并将 Edge WebDriver 安装在 Ruby/bin 文件夹中,就像其他 webdriver.exe 文件一样;像chromedriver或iedriver。它似乎启动了 Edge 浏览器,但在关闭浏览器并未能通过我的所有测试之前没有尝试转到 URL。我在 Windows 中的防火墙允许它,当我运行我的 rspec 测试时它指出:

Selenium::WebDriver::Error::NoSuchWindowError: no such window

有人让 MSWebdriver 与 watir-webdriver 一起工作吗?

错误:

c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/response.rb:71:in `assert_ok': not implemented (Selenium::WebDriver::Error::WebDriverError)
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/http/common.rb:78:in `new'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/http/common.rb:78:in `create_response'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/http/default.rb:90:in `request'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/bridge.rb:657:in `raw_execute'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/bridge.rb:635:in `execute'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/remote/bridge.rb:221:in `switchToDefaultContent'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.47.1/lib/selenium/webdriver/common/target_locator.rb:96:in `default_content'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/watir-webdriver-0.8.0/lib/watir-webdriver/browser.rb:385:in `assert_exists'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/watir-webdriver-0.8.0/lib/watir-webdriver/browser.rb:110:in `url'
        from c:/Ruby-222-x64/lib/ruby/gems/2.2.0/gems/watir-webdriver-0.8.0/lib/watir-webdriver/browser.rb:79:in `goto'
        from msedge.rb:4:in `<main>'

此外,IE 按预期工作。

【问题讨论】:

  • 你能指出你得到EdgeWebDriver.exe的地方吗? AFAIK,有一个 MicrosoftWebDriver.exe 可用。如果可能,请发布重现您的问题所需的最少代码量。
  • microsoft.com/en-us/download/details.aspx?id=48212 是我找到驱动程序的地方。
  • 那是 MicrosoftWebDriver.exe。我建议发布演示问题的代码。
  • 基本码require 'watir-webdriver' browser = Watir::Browser.new 'edge' browser.goto 'https://microsoft.com' browser.window.resize_to(1280,1024)
  • FWIW:我可以重现这个问题。

标签: ruby rspec selenium-webdriver watir-webdriver microsoft-edge


【解决方案1】:

看起来这个问题已经很老了,但如果有人还在寻找答案,让我试着回答一下......

在使用 MSWebdriver for MSEdge 时要考虑以下几点

1) 仅下载适用于您的操作系统构建的驱动程序,其他 MSWebDriver 将无法工作 如何检查您的 Windows 10 操作系统版本? 打开 Run(Win+R) 并输入 winver

2) 下载正确版本后,将其放在 PATH 变量中存在的任何文件夹中,或将其放置在某处并将该位置添加到 PATH 变量中

3) 现在通过适当初始化边缘浏览器来正常运行测试 例如:ruby-webdriver : driver = Selenium::WebDriver.for :edge

希望这会有所帮助! 祝自动化快乐!!

【讨论】:

    【解决方案2】:

    仅供参考 - 我已经能够通过以下配置在 Windows 10 上使用 Edge 浏览器:

    • Ruby 2.1.6
    • watir-webdriver (0.9.1)
    • selenium-webdriver (2.49.0)

    然后:

    1. https://www.microsoft.com/en-us/download/details.aspx?id=48212 下载 Microsoft Web Driver 服务器的安装程序
    2. 运行安装程序,将 Web Driver 服务器的可执行文件放置在:C:\Program Files (x86)\MicrosoftWebDriver\MicrosoftWebDriver.exe
    3. 将可执行文件复制到搜索路径中的文件夹(即 C:\Ruby21\bin\ )

    请注意,当您启动新的 Edge 浏览器对象时,服务器会启动,但如果浏览器意外终止,则可能会挂起。在这种情况下,需要使用 Windows 任务管理器手动终止服务器,然后 Edge 浏览器的另一个实例才能与服务器通信。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 2015-11-16
      • 2012-11-23
      • 1970-01-01
      • 2018-08-05
      • 2022-06-26
      • 1970-01-01
      相关资源
      最近更新 更多