diff --git a/lib/webrat/selenium/location_strategy_javascript/webratlink.js b/lib/webrat/selenium/location_strategy_javascript/webratlink.js index ad71957..4578291 100644 --- a/lib/webrat/selenium/location_strategy_javascript/webratlink.js +++ b/lib/webrat/selenium/location_strategy_javascript/webratlink.js @@ -3,7 +3,14 @@ var candidateLinks = $A(links).select(function(candidateLink) { return PatternMatcher.matches(locator, getText(candidateLink)); }); if (candidateLinks.length == 0) { - return null; + var last_char_of_locator = locator.lastIndexOf('/'); + var locator_id = locator.substring(11,last_char_of_locator); + var candidate_link_by_id = inDocument.getElementById(locator_id); + if (candidate_link_by_id == null) { + return null; + } else { + return candidate_link_by_id; + } } candidateLinks = candidateLinks.sortBy(function(s) { return s.length * -1; }); //reverse length sort return candidateLinks.first();