selenium: пользовательский локатор, использующий локатор xpath - PullRequest
0 голосов
/ 02 июня 2009

Я хочу определить пользовательский локатор с селеном и хочу использовать существующий локатор xpath.

Код ниже не работает. Как мне это сделать?

PageBot.prototype.locateElementByNg= function(text, inDocument) {
    var xpath = doSomeManipulation(text);
    return PageBot.prototype.locateElementByXpath(xpath, inDocument);
};

1 Ответ

1 голос
/ 11 августа 2009

Посмотрите на chrome: //selenium-ide/content/locatorBuilders.js

Быстрое решение, как создать свой собственный на основе xpath: attribute one:

LocatorBuilders.add ('xpath: attribute', function (e) {

просто измените имя на 'xpath: by_ng'

и используйте его как единственный в Preferences атрибутах const PREFERRED_ATTRIBUTES = ['by_ng'];

А затем использовать его в

LocatorBuilders.order = ['xpath: by_ng', 'xpath: link'];

Я буду работать на:

<a id="some" name="other" by_ng="this will be catched">test</a>

Если вам это нужно для работы со структурой, такой как:

<a id="some" name="other" by_ng="this will be catched">
  <img />
  <span>Text</span>
  <p>Some text <b>bold</b></p>
</a>

тогда потребуются некоторые дополнительные изменения.

...