Ruby -Watir Предупреждение - Selenium :: WebDriver :: Ошибка :: ObsoleteElementError - PullRequest
0 голосов
/ 12 февраля 2020

Привет, все, я получаю предупреждение, запустив мой код автоматизации тестирования watir, и хотя он работает, я хочу устранить его.

Предупреждение: 2020-02-12 08:35 : 47 WARN Selenium [DEPRECATION] Selenium :: WebDriver :: Error :: ObsoleteElementError устарела. Вместо этого используйте Selenium :: WebDriver :: Error :: StaleElementReferenceError (убедитесь, что драйвер поддерживает спецификацию W3 C WebDriver).

Неисправная строка кода:

iframe.select(:id => 'col0').wait_until(&:present?)

из этот большой фрагмент.

 iframe = @b.iframe(:title => /Mass Delete/)
  iframe.wait_until(&:present?)
  if iframe.present?
    iframe.link(:visible_text => /Mass Delete #{type}/).click
    iframe.select(:id => 'col0').wait_until(&:present?)
    iframe.option(:text => /Owner Alias/).select
    iframe.option(:text => 'equals').select
    iframe.text_field(:id => "fval0").set user
    iframe.button(:title => "Search").click
  else
   raise "Unable to locate the Salesforce Iframe"
end

Вот страница html:

Страница Html

Я пытался использовать разные локаторы для взаимодействия с этим элементом но безрезультатно.

1 Ответ

0 голосов
/ 12 февраля 2020

Эта проблема будет решена в следующей версии Watir - точная дата выпуска - TBD. В краткосрочной перспективе у вас есть несколько вариантов, чтобы скрыть предупреждение.

Журнал в файл

Я бы посоветовал отправить журналы Selenium в файл. Это держит его отдельно и остается доступным, если вам это нужно.

Selenium::WebDriver.logger.output = 'selenium.log'

Игнорировать предупреждения

Обычно предупреждения Selenium вам не нужны, поскольку они должны быть адресованы Watir меняется. Поэтому вы можете изменить регистратор Selenium, чтобы игнорировать предупреждения:

Selenium::WebDriver.logger.level = :error
...