【问题标题】:(ensure the driver supports W3C WebDriver specification) instead.`(确保驱动程序支持 W3C WebDriver 规范)。
【发布时间】:2020-05-11 18:32:32
【问题描述】:

我已经阅读了其他有相同错误的帖子,但没有一个给我一个可用的解决方案。

我有一个 Rails 应用程序:

宝石版本

Rails 6.0.2.1
ruby 2.6.5p114 

宝石锁

watir (6.16.5)
  regexp_parser (~> 1.2)
  selenium-webdriver (~> 3.6)

selenium-webdriver (3.142.7)
  childprocess (>= 0.5, < 4.0)
  rubyzip (>= 1.2.2)

Chrome 驱动程序

ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614})

当我和 watir 一起做这个时:

 browser.select_list(id:'car_type').select('ford')
 or
 browser.button(xpath: '//div/ul/li[2]/button').click

我收到以下错误,在循环中重复:

WARN Selenium [DEPRECATION] Selenium::WebDriver::Error::ElementNotVisibleError is deprecated. Use Selenium::WebDriver::Error::ElementNotInteractableError (ensure the driver supports W3C WebDriver specification) instead.

我假设我使用了错误的命令或错误的 webdriver。我该如何解决这个问题?我在哪里可以找到替代当前命令的非贬值推荐?

【问题讨论】:

  • 尝试this answer 并报告。这可能就像切换你的 gem 和驱动程序一样简单。
  • 我没有chromedriver-helper,至少我找不到,我去哪里找?它不在我的 gem.lock 文件中。

标签: ruby selenium selenium-webdriver watir ruby-on-rails-6


【解决方案1】:

Watir 似乎自 2018 年以来没有更新,因此使用了无法升级的旧 Selenium gem。

因此,我切换到 Capybara 并解决了这个问题。不是一个真正的解决方案,但它是我的案例最简单的解决方案。

【讨论】:

    【解决方案2】:

    这个错误绝对不是你的问题。 Watir 仍然没有完全改变它。他们很快就会用正确的例外来代替。不过暂时不想看到这个警告的话,直接去

    C:\Ruby26\lib\ruby\gems\2.6.0\gems\watir-6.16.5\lib\watir\elements
    

    在哪里可以找到 element.rb 文件,搜索 Selenium::WebDriver::Error::ElementNotVisibleError 这个异常并替换为 Selenium::WebDriver::Error::ElementNotInteractableError,然后您将不会收到警告通知。你可能会问我为什么他们给出警告而不是替换它,那是因为有些人仍然可能使用旧的 chrome 驱动程序,这就是为什么他们先设置警告消息然后他们会根据 W3C 标准用新异常替换旧异常.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-24
      相关资源
      最近更新 更多