У меня возникают проблемы с поиском элементов с использованием xpath при попытке написать автоматические тесты WebUI с помощью Arquillian Drone + Graphene. Чтобы выяснить, что я делаю, я попытался найти кнопку поиска на google homepage. Даже этого я не делаю. Ни с абсолютным, ни с относительным xpath.Поиск WebElements с использованием XPATH (NoSuchElementException)
Однако я могу найти элементы с помощью идентификаторов или когда в строке xpath есть идентификатор. Но только тогда, когда идентификатор является реальным идентификатором и не генерируется. Например, на главной странице google: Логотип google имеет реальный идентификатор «hplogo». Я могу найти этот элемент, используя непосредственно идентификатор или идентификатор в выражении xpath.
Почему логотип google можно использовать с идентификатором «hplogo», но сбой при использовании абсолютного xpath "/html/body/div[1]/div[5]/span/center/div[1]/div/div"
? Я действительно смущен. Что я делаю не так? Любая помощь приветствуется!
РЕДАКТИРОВАТЬ:
WebElement e = browser.findElement(By.xpath("/html/body/div[1]/div[5]/span/center/div[1]/div/div"));
вызывает NoSuchElementException.
Как выглядит рендер DOM? Ваше выражение xpath не работает для меня. – Marco
Можете ли вы определить, какой браузер использует ваш код? Я могу опубликовать скриншоты, которые показывают, что ваше выражение работает в firefox 37, но не в chrome 42. Возможно, это зависит от локализации (google.co.uk для меня). Если я нахожусь на google.com, то логотип изображения для меня: '/ html/body/div/div [5]/span/center/div [1]/img' на firefox и'/html/body/div/div [6]/span/center/div [1]/img' на Chome. – legrass
Использует htmlUnit. Моя проблема не имеет прямого отношения к главной странице google или локализации. Я получаю ту же ошибку (NoSuchElementException) при использовании xpath на других сайтах. – Marco