Selenium :: WebDriver :: Error :: ElementNotVisibleError: элемент не взаимодействует с Дженкинсом - PullRequest
0 голосов
/ 22 марта 2019

журналы:

Organization flow Successfull case Organization should be created successfully.
     Failure/Error: find('#submit_requirements_crawl_type_1', visible: false).click

     Selenium::WebDriver::Error::ElementNotVisibleError:
       element not interactable
         (Session info: headless chrome=72.0.3626.119)
         (Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),platform=Linux 4.9.0-7-amd64 x86_64)

Я пробовал максимальное количество примеров, которые присутствовали при переполнении стека и нескольких других сайтах.

Несколько примеров кода:

find(:xpath, "//label[@for='submit_requirements_crawl_type_1']").click
find(:xpath, "//label[@for='submit_requirements_output_format_0']").click

find('#submit_requirements_crawl_type_1', visible: false).click
find('#submit_requirements_output_format_0', visible: false).click

find('label', text: "submit_requirements_crawl_type_2").click
find('label', text: "submit_requirements_output_format_0").click

choose('Full Crawl', :visible => true)
choose('JSON', :visible => true)




<div class="radio radio-info radio-inline">
      <input type="radio" value="1" name="submit_requirements[crawl_type]" id="submit_requirements_crawl_type_1">
      <label for="submit_requirements_crawl_type_1">Full Crawl</label>
    </div>

Примечание:

Прекрасно работает в среде разработки, как с головным, так и с головным Chrome WebDriver

1 Ответ

0 голосов
/ 23 марта 2019

Если вам нужно указать visible: false, чтобы найти элемент, вы не сможете щелкнуть по нему, поскольку вы не можете щелкнуть по элементам, которые не видны на странице.

Видя, что это радио-кнопка, моя первоначальная реакция заключается в том, что у вас есть CSS, который скрывает фактическую радио-кнопку и заменяет ее изображением по причинам стиля (чтобы он выглядел как переключатель и т. Д.). Если это так, вы можете сделать так, чтобы Capybara щелкнул по метке вместо

choose('Full Crawl', allow_label_click: true)

Тем не менее, если принять ваше утверждение «Он работает нормально в среде разработки как с головным, так и с головным Chrome WebDriver» означает, что вы выполнили тесты в среде разработчика, и они в порядке, это будет означать, что у вас есть ошибка где-то в ваш JS. В среде dev ошибка в одном файле JS не препятствует обработке остальных файлов JS, однако в тестовой (и рабочей) среде файлы JS объединяются в один файл, что означает, что ошибка в любом файле может предотвратить JS сцепляется после этой ошибки от запуска. При посещении страницы проверьте консоль браузера и исправьте все обнаруженные ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...