Rspec терпит неудачу, когда ему нужно открыть функцию всплывающих при нажатии в Ruby on Rails - PullRequest
0 голосов
/ 10 сентября 2018

В моем приложении, когда я нажимаю href (гиперссылка), должно открыться всплывающее окно и проверить функции.Во всех местах, где есть событие click для ссылки, во всех тестовых случаях Rspecs не открывается модальное окно.Я использую ниже драгоценных камней.я запускаю Rspecs внутри образа докера -Centos.Это работало рано.Мы сделали несколько изменений в приложении, например добавили несколько CSS.После этих изменений все onslick 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"

1 Ответ

0 голосов
/ 10 сентября 2018

Может быть несколько факторов, способствующих отказу.Вы должны проверить следующее:

  • Вход, который вы ищете, существует.fill_in попытается сопоставить ввод с именем, идентификатором или меткой contact_us_company_name
  • Модал имеет переходы и занимает больше времени, чем Capybara.max_wait_time_out, поэтому вы должны установитьопция :wait
  • Сценарий не запускает javascript, поэтому модальный никогда не отображается.

fill_in документацию можно найти здесь

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