: Ich bin Ruby im Allgemeinen. Ich versuche Capybara mit Selen zu lernen, um Tests für unsere Firmenwebseite durchzuführen.Capybara rspec Skript nicht ausgeführt wird in Blöcken beschreiben
Mein Code arbeitet, bevor ich sie in beschreiben Blöcke setzen. Aber ich musste warten, bis die Seite geladen wurde, nachdem ich mich angemeldet habe. Ich habe etwas recherchiert und festgestellt, dass die Expect-Methode der richtige Weg ist, aber sie funktionieren nur in Blöcken, denke ich. Wenn ich nun ruby testscript.rb starte, öffnet sich der Browser nicht einmal. Unten ist der Code:
require 'timeout'
require 'capybara'
require 'capybara/dsl'
require 'capybara/rspec'
require 'capybara/rspec/matchers'
require 'capybara/session/matchers'
require 'capybara/node/matchers'
Capybara.default_driver = :selenium
session = Capybara::Session.new(:selenium)
describe 'login process', :type => :feature do
it 'signs me in' do
visit 'https://testwebsite.com'
find_by_id('login_form')
fill_in('username', with: 'testuser')
fill_in('password', with: 'testpw')
find_by_id('Login').click
expect(page).to have_content('phSearchInput')
end
end
describe 'search install product', :type => :feature do
it 'searches product' do
fill_in('phSearchInput', with: '6109302')
find_by_id('phSearchButton').click
within "SVMXC__Installed_Product__c_body" do
click_on "6109302"
end
end
end
Jede Hilfe wird geschätzt. Fühlen Sie sich frei, Alternativen anzubieten, um das Problem beim Laden der Seite zu lösen. Ich möchte nicht schlafen. Vielen Dank!
Vielen Dank! Es läuft jetzt. Aber ich bekomme einen NoMethodError über "expect". Ich denke, ich habe alles hinzugefügt. Irgendwelche Ideen? Dies ist die Zeile: expect (Seite) .to have_field ('phSearchInput') – shen
@shen Angenommen, Sie verwenden eine moderne Version von RSpec, dann klingt es so, als müssten Sie 'rspec' oder 'rspec/expectations' vor 'capybara/rspec 'und vielleicht auch RSpec konfigurieren. –
Ich habe gerade alles gestern installiert, also glaube ich, dass alles modern sein sollte. Ich habe nicht 'rspec' oder 'rspec/expectation'. Ich habe "Capybara/rspec/matchers" und es ist vor "Capybara/rspec", aber es funktioniert immer noch nicht. Hast du eine Idee? Vielen Dank! – shen