Ruby on rails 4 Selenium::WebDriver::Error::ElementNotVisibleError:元素不可交互jenkins

Ruby on rails 4 Selenium::WebDriver::Error::ElementNotVisibleError:元素不可交互jenkins,ruby-on-rails-4,selenium-webdriver,capybara,jenkins-cli,Ruby On Rails 4,Selenium Webdriver,Capybara,Jenkins Cli,日志: 我尝试了stack overflow和其他几个站点中出现的大量示例 少数代码示例: Organization flow Successfull case Organization should be created successfully. Failure/Error: find('#submit_requirements_crawl_type_1', visible: false).click Selenium::WebDriver::Error::Elemen

日志:

我尝试了stack overflow和其他几个站点中出现的大量示例

少数代码示例:

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\u requirements\u crawl\u type\u 1'])。单击
查找(:xpath,“//label[@for='submit\u requirements\u output\u format\u 0'])。单击
查找(“#提交"要求"爬网"类型"1”,可见:false)。单击
查找(“#提交#需求"输出"格式"0”,可见:false)。单击
查找('标签',文本:“提交要求\u爬网\u类型\u 2”)。单击
查找('标签',文本:“提交需求\输出\格式\ 0”)。单击
选择('完全爬网',:visible=>true)
选择('JSON',:visible=>true)
全速爬行
注:


如果您必须指定
visible:false
以定位元素,那么它在开发环境中使用headless和headchromewebdriver都可以正常工作,因为您无法单击页面上不可见的元素

看到它是一个单选按钮,我的第一反应是CSS隐藏了实际的单选按钮,并将其替换为一个图像,以进行样式设计(使其看起来像一个切换,等等)。如果是这样的话,你可以让水豚用鼠标点击标签

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>

然而,假设您的语句“它在开发环境中使用headless和headchromewebdriver都可以正常工作”,则意味着您已经在开发环境中运行了测试,并且测试结果正常,这可能表明您的JS中存在错误。在开发环境中,一个JS文件中的错误不会阻止处理其余的JS文件,但是在测试(和生产)环境中,JS文件会连接到一个文件中,这意味着任何文件中的错误都会阻止在该错误后连接的JS运行。访问页面时,请检查浏览器控制台并修复报告的任何错误。

如果必须指定
可见:false
以定位元素,则无法单击该元素,因为无法单击页面上不可见的元素

看到它是一个单选按钮,我的第一反应是CSS隐藏了实际的单选按钮,并将其替换为一个图像,以进行样式设计(使其看起来像一个切换,等等)。如果是这样的话,你可以让水豚用鼠标点击标签

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>

然而,假设您的语句“它在开发环境中使用headless和headchromewebdriver都可以正常工作”,则意味着您已经在开发环境中运行了测试,并且测试结果正常,这可能表明您的JS中存在错误。在开发环境中,一个JS文件中的错误不会阻止处理其余的JS文件,但是在测试(和生产)环境中,JS文件会连接到一个文件中,这意味着任何文件中的错误都会阻止在该错误后连接的JS运行。访问该页面时,请检查浏览器控制台并修复报告的任何错误。

能否添加该区域的html以及您收到的错误。我刚刚更新了问题。。请检查一下。您是否尝试过
find(:xpath,//input[@id='submit\u requirements\u crawl\u type\u 1'])。单击
@supputuri我现在就试试。再次失败:失败/错误:find(:xpath,//input[@id='submit\u requirements\u crawl\u type\u 1'])。单击Capybara::ElementNotFound:无法找到xpath”//input[@id='submit\u requirements\u crawl\u type\u 1']”您可以添加该区域的html以及您遇到的错误。我刚刚更新了问题..请检查一下。您是否尝试过
find(:xpath,//input[@id='submit\u requirements\u crawl\u type\u 1'])。单击
@supporturi我现在将尝试。再次失败:失败/错误:find(:xpath,//input[@id='submit\u requirements\u crawl\u type\u 1']>。单击Capybara::ElementNotFound:找不到xpath”//input[@id='submit\u requirements\u crawl\u type\u 1']“它只需要一些延迟。感谢您的时间。它只需要一些延迟。谢谢您的时间。