繁体   English   中英

Rspec需要在Ruby on Rails中打开Click功能弹出窗口时失败

[英]Rspec fails when it needs to open up a popup on click function in Ruby on Rails

在我的应用程序中,当我单击href(超链接)时,弹出窗口应打开并测试功能。 在链接发生点击事件的所有地方,所有Rspecs测试用例均无法打开模式窗口。 我正在使用以下宝石。 我正在docker -Centos映像中运行Rspecs。 它工作得很早。 我们在应用程序中进行了很少的更改,例如添加了少量CSS。 完成这些更改后,所有onclick Rspecs都将失败。 有人可以帮忙吗? Ruby版本是2.3

  rspec-expectations 3.4.0
  rspec-mocks 3.4.1
  rspec 3.4.0
  rspec-rails 3.4.2
  rspec_junit_formatter 0.2.3
  selenium-webdriver 3.9.0
  capybara 2.7.1
  rails 4.2.6

链接的示例HTML代码

  <%= link_to 'Contact Us', '/contactus',  {:id=> 'submit', :remote => true, 'data-toggle' =>  "modal", 'data-target' => '#contactusId', :class=>'btn btn-default'}

样本Rspec

  require 'rails_helper'
  require 'capybara/rspec'
  RSpec.feature 'Contact Us - 'do

    scenario 'create a simple contact request after login with logged in users email id and name' do
      visit '/signin'
      do_login 'test', 'test'
      sleep 5
      click_link('Contact Us', visible: true)
      fill_contact_us_form 'a','b','c','8056286205','From Rspec'
      click_on 'Send Email'
      expect(page).to have_content("Your request has been submitted")
    end

    def fill_contact_us_form(name, companyname, emailid,contactNumber,notes)
      if(name!=nil)
        fill_in 'contact_us_name', :with => name
      end
      fill_in 'contact_us_company_name', :with => companyname
      if(emailid!=nil)
        fill_in 'contact_us_email_id', :with => emailid
      end
      if(contactNumber!=nil)
        fill_in 'contact_us_contact_number', :with => contactNumber
      end
      if(contactNumber!=nil)
        fill_in 'contact_us_notes', :with => notes
      end
    end

错误

 Contact Us -  create a simple contact request after login with logged in users email id and name
 Failure/Error: fill_in 'contact_us_company_name', :with => companyname
 Capybara::ElementNotFound:
 Unable to find field "contact_us_company_name"

可能有几种因素导致故障。 您应该检查以下内容:

  • 您要查找的输入确实存在。 fill_in将尝试匹配具有名称,ID或标签contact_us_company_name的输入
  • 模态有过渡并且比Capybara.max_wait_time_out花费更长的时间,因此您应该设置:wait选项
  • 该方案未运行javascript,因此从不显示模式。

fill_in文档可以在这里找到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM