Make link location in Selenium more reliable and consistent with non-Selenium

This commit is contained in:
Bryan Helmkamp 2009-09-18 15:48:08 -04:00
parent b51ba029db
commit 03f2023117
1 changed files with 16 additions and 4 deletions

View File

@ -1,9 +1,21 @@
var links = inDocument.getElementsByTagName('a'); var links = inDocument.getElementsByTagName('a');
var candidateLinks = $A(links).select(function(candidateLink) { var candidateLinks = $A(links).select(function(candidateLink) {
var textMatched = PatternMatcher.matches(locator, getText(candidateLink)); var textMatched = false;
var idMatched = PatternMatcher.matches(locator, candidateLink.id); var titleMatched = false;
var titleMatched = PatternMatcher.matches(locator, candidateLink.title); var idMatched = false;
if (getText(candidateLink).toLowerCase().indexOf(locator.toLowerCase()) != -1) {
textMatched = true;
}
if (candidateLink.title.toLowerCase().indexOf(locator.toLowerCase()) != -1) {
titleMatched = true;
}
if (candidateLink.id.toLowerCase().indexOf(locator.toLowerCase()) != -1) {
idMatched = true;
}
return textMatched || idMatched || titleMatched; return textMatched || idMatched || titleMatched;
}); });
@ -15,6 +27,6 @@ if (candidateLinks.length == 0) {
//reverse length sort //reverse length sort
candidateLinks = candidateLinks.sortBy(function(s) { candidateLinks = candidateLinks.sortBy(function(s) {
return s.length * -1; return s.length * -1;
}); });
return candidateLinks.first(); return candidateLinks.first();