xpath не распознается в селене, но распознается в XPather - PullRequest
2 голосов
/ 03 декабря 2009

В моем скрипте есть следующий код:

System.out.println(selenium.getAttribute("xpath=//div[@class='guest clearfix'][1]/@id"));

Когда я пытаюсь запустить скрипт, он говорит, что элемент не найден. Если я введу xpath в XPather (аддон для firefox) //div[@class='guest clearfix'][1]/@id, он правильно даст мне идентификатор.

Я озадачен тем, почему это не будет работать в моем коде. Если кто-то может увидеть какую-либо ошибку в моем коде, пожалуйста, дайте мне знать.

Спасибо

Ответы [ 3 ]

2 голосов
/ 03 декабря 2009

Я думаю, что проблема будет в дополнительном слэше перед @id. Попробуйте следующее:

selenium.getAttribute("//div[@class='guest clearfix'][1]@id");

Я считаю, что последний /@id является действительным XPath для возврата атрибута, но синтаксис Selenium отличается, так как для него требуется указатель элемента, за которым следуют @ и имя атрибута.

Кроме того, вы можете добиться того же с помощью следующего локатора CSS:

selenium.getAttribute("css=div.guest.clearfix@id");
1 голос
/ 03 декабря 2009

Похоже, проблема не в атрибуте, а в самом базовом локаторе. Я предлагаю вам поиграть с функцией $ x в Firebug и убедиться, что поиск элемента первым (не атрибутом) работает.

0 голосов
/ 03 декабря 2009

Вот что SeleniumIDE показывает в справочном разделе:

Аргументы:

  • attributeLocator - локатор элемента, за которым следует знак @, а затем имя атрибута, например, "Foo @ бар"

Итак, ответ Дейва верен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...