Beim Auffinden von Links nach einem Seitenneuaufbau kommt es in meinem cucumber/webrat/selenium-Stack gelegentlich zu Timingschwierigkeiten. Soweit ich die Sache interpretiere, muss man folgendes beachten:
- Zeitangaben werden in cucumber bei Selenium-Aufrufen in Sekunden gesetzt – diese werden automatisch zu Millisekunden konvertiert.
- Wenn zuvor kein Seitenaufbau angefordert wurde, wartet die Methode “selenium.wait_for_page_to_load” vergebens.
- Falls ein Link auch trotz xpath-Locator nicht gefunden wird, kann ein Pagerefresh helfen.
Beispiele
Hier zwei cucumber steps:
Given I refresh the page And I follow xpath "//*[@id='p1show']" ...
und ihre Stepdefinition:
1 2 3 4 5 6 7 8 9 |
Given /^I refresh the page$/ do selenium.refresh selenium.wait_for_page_to_load 2 end When /^I follow xpath "([^\"]*)"$/ do |link| selenium.click "xpath=#{link}" selenium.wait_for_page_to_load 2 end |
Das “wait_for_page_to_load” verringert die Wahrscheinlichkeit von Timingproblemen im Ablauf erheblich.