Selenium :: WebDriver :: Error :: ElementNotVisibleError:元素不可交互的jenkins

问题描述 投票:0回答:1

日志:

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>

注意:

它在无头和头部镀铬webdriver的开发环境中工作正常

ruby-on-rails-4 selenium-webdriver capybara jenkins-cli
1个回答
0
投票

如果您必须指定visible: false才能找到元素,您将无法单击它,因为您无法单击页面上不可见的元素。

看到它是一个单选按钮,我最初的反应就是你有CSS隐藏了实际的单选按钮并将其替换为图像以用于造型(使其看起来像切换等)。如果是这种情况,那么你可以让Capybara点击标签而不是

choose('Full Crawl', allow_label_click: true)

但是,假设您的声明“它在开发环境中使用无头和头部chrome webdriver正常工作”意味着您已经在开发环境中运行测试并且它们很好,它往往表明您在JS中的某处出现了错误。在开发环境中,一个JS文件中的错误不会阻止处理其余的JS文件,但是在测试(和生产)环境中,JS文件被连接成一个文件,这意味着任何文件中的错误都可以防止在运行该错误之后,JS连接起来。访问页面时检查浏览器控制台并修复报告的任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.