Skip to content

Commit

Permalink
DanielWagnerHall: Fall back to xhtml-incompatible lookup if browser d…
Browse files Browse the repository at this point in the history
…oesn't support CSS selectors. This is a kind of ugly hack.

r16149
  • Loading branch information
illicitonion committed Mar 5, 2012
1 parent b1cb8e0 commit f55f6da
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions javascript/atoms/locators/link_text.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,15 @@ goog.require('goog.dom.DomHelper');
* @private
*/
bot.locators.linkText.single_ = function(target, root, opt_isPartial) {
var elements = bot.locators.css.many('a', root);
var elements;
try {
elements = bot.locators.css.many('a', root);
} catch (e) {
// Old versions of browsers don't support CSS. They won't have XHTML
// support. Sorry.
elements = goog.dom.getDomHelper(root).getElementsByTagNameAndClass(
goog.dom.TagName.A, /*className=*/null, root);
}

var element = goog.array.find(elements, function(element) {
var text = bot.dom.getVisibleText(element);
Expand All @@ -57,7 +65,16 @@ bot.locators.linkText.single_ = function(target, root, opt_isPartial) {
* @private
*/
bot.locators.linkText.many_ = function(target, root, opt_isPartial) {
var elements = bot.locators.css.many('a', root);
var elements;
try {
elements = bot.locators.css.many('a', root);
} catch (e) {
// Old versions of browsers don't support CSS. They won't have XHTML
// support. Sorry.
elements = goog.dom.getDomHelper(root).getElementsByTagNameAndClass(
goog.dom.TagName.A, /*className=*/null, root);
}

return goog.array.filter(elements, function(element) {
var text = bot.dom.getVisibleText(element);
return (opt_isPartial && text.indexOf(target) != -1) || text == target;
Expand Down

0 comments on commit f55f6da

Please sign in to comment.