2010-11-24 2 views
0

Mit Gurke 0.9.4, teste ich einige Websites mit Watir Ruby Gem. Alle Tests funktionieren gut, aber das Problem ist, wenn die Website dauert einige Zeit zu laden dann diese Website-Tests übersprungen wird, wie dieses Problem zu überwinden. Meine Funktion Dateiinhalt ist:watir web testing funktioniert nicht für Websites, die etwas Zeit zum Laden benötigen

Feature: Search 
    In order to learn more 
    As an information seeker 
    I want to find more information 

    Scenario: Find what I'm looking for 
    Given I am on the Google search page 
    When I click on link Services 
    Then I should see 
     """ 
     spriteCloud 
     """ 

Mein Schritt def. Dateiinhalt ist:

Given 'I am on the Google search page' do 
    @browser.goto 'http://www.spritecloud.com/' 
end 

When /^I click on link (.*)$/ do |link| 
    @browser.link(:text, link).click 
end 

Then /I should see/ do |text| 
    @browser.text.should =~ /#{text}/m 
end 

Der obige Code funktioniert perfekt für Website google.com und klicken Sie auf News-Bereich

Antwort

3

Standardmäßig wartet Watir für die Seite zu laden. Gibt es auf der Seite asynchrone Anforderungen?

Bei asynchronen Anfragen wartet Watir nicht, bis eine Aktion versucht wird. Dies könnte der Grund dafür sein, dass Ihre Tests fehlschlagen. In diesem Fall müssen Sie warten, bis das Element zuerst laden:

Waiter.wait_until(20) do 
    browser.text_field(:id, 'customer_id').exists? 
end 

Und dann die Aktion ausführen.

Verwandte Themen