(убедитесь, что драйвер поддерживает спецификацию W3 C WebDriver). - PullRequest
1 голос
/ 25 января 2020

Я читал другие публикации с той же ошибкой, но ни одна не дала мне подходящего решения.

У меня есть приложение rails:

версии самоцветов

Rails 6.0.2.1
ruby 2.6.5p114 

Gem.lock

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

Я получаю следующую ошибку, повторяя: в al oop:

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

Я предполагаю, что я использую неправильную команду или неправильный веб-драйвер. Как мне исправить эту проблему? Где найти недооцененные комментарии, которые заменяют текущие команды?

Ответы [ 2 ]

0 голосов
/ 26 января 2020

Watir, кажется, не обновлялся с 2018 года, и поэтому использует более старый драгоценный камень Selenium, который вы не можете обновить.

Поэтому я переключился на Capybara, и это исправило проблему. Не верное решение, но это было самое легкое решение для моего случая.

0 голосов
/ 26 января 2020

Эта ошибка абсолютно не ваша проблема. Ватир до сих пор не сдвинулся с места. Они будут заменены на правильные исключения в ближайшее время. Но на данный момент, если вы не хотите видеть это предупреждение, просто go до

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, поэтому они сначала устанавливают предупреждающее сообщение, а затем заменяют старое исключение новым исключением в соответствии с W3 C стандарт.

...