Элемент найден в XPath Checker, но отсутствует в Selenium - PullRequest
3 голосов
/ 10 ноября 2009

У меня есть следующий XPath:

//div[contains(@id, 'box')]/div/h4/small/a[contains(@href, 'google')]/@href

Когда я пробую этот XPath в XPath Checker (расширение Firefox), он все время работает идеально. Но когда я делаю следующее в Selenium:

System.out.println(selenium.getAttribute("//div[contains(@id, 'box')]/div/h4/small/a[contains(@href, 'google')]/@href"));

Он продолжает выдавать следующую ошибку:

14:30:56.311 INFO - Got result: OK on session 5a1401d374a04779bbe6f7fe9a0b4536
14:30:56.315 INFO - Command request: getAttribute[//div[contains(@id, 'box')]/div/h4/small/a[contains(@href, 'google')]/@href, ] on session 5a1401d374a04779bbe6f7fe9a0b4536
14:30:56.372 INFO - Got result: ERROR: Element //div[contains(@id, 'box')]/div/h4/small/a[contains(@href, 'google')]/ not found on session 5a1401d374a04779bbe6f7fe9a0b4536

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

Ответы [ 4 ]

4 голосов
/ 10 ноября 2009

Разве эта строка запроса не должна выглядеть так (согласно API Java)?

"xpath=//div[contains(@id, 'box')]/div/h4/small/a[contains(@href, 'google')]/@href"
2 голосов
/ 10 ноября 2009

Согласно API doc , оно должно быть

...getAttribute("xpath=//div[contains....
1 голос
/ 23 июля 2016

Вы должны сначала написать xpath например,

WebDriver_Object_name.findElement(By.xpath("...xpath...")).getAttribute("..Attri_name..");

Здесь ваш WebDriver_Object_name может быть селен

1 голос
/ 05 сентября 2013

В Selenium RC: необходимо указать xpath как "xpath = // div [содержит (@id, 'box')] / div / h4 / small / a [содержит (@href, 'google')]] @href». Так что в вашем случае код выглядит так:

selenium.getAttribute("xpath=//div[contains(@id, 'box')]/div/h4/small/a[contains(@href, 'google')]/@href");

В Selenium WebDriver: код указан ниже:

driver.findElement(By.xpath("//div[contains(@id, 'box')]/div/h4/small/a[contains(@href, 'google')]/@href")).getAttribute("The name of the attribute");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...