Перейти к содержимому

Фотография

WebDriver не ищет по XPath


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 AVIPlayer

AVIPlayer

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Высоких Андрей

Отправлено 17 апреля 2012 - 10:27

Доброго времени суток. Несколько лет пользуюсь selenium RC. Вот решили отказаться в пользу WebDriver. И сразу же возникла проблема. Не могу доступиться к элементу по XPath.
Выражение взято из RC. Там оно прекрасно работает. WebDriver выдает ошибку: Unable to find element with xpath == //img[@onclick='javascript:onEnter()'] (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 297 milliseconds
WebDriver driver = new InternetExplorerDriver();
selenium = new WebDriverBackedSelenium(driver, getHost());
selenium.click("//img[@onclick='javascript:onEnter()']");

Напрямую, через вэбдрайвер тоже валится эксепшн:

driver.findElementByXPath("//img[@onclick='javascript:onEnter()']");

Это баг WebDriver? Или необходимо как-то исправить выражение?
  • 0

#2 biomaks

biomaks

    Постоянный участник

  • Members
  • PipPipPip
  • 171 сообщений
  • Город:Москва


Отправлено 17 апреля 2012 - 11:25

А в других браузерах тоже не может найти?
  • 0

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 897 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 17 апреля 2012 - 11:41

driver.findElementByXPath("//img[@onclick='javascript:onEnter()']");
Это баг WebDriver? Или необходимо как-то исправить выражение?


driver.findElementByXPath("//img[@onclick='javascript:onEnter()']").click();
  • 0

#4 AVIPlayer

AVIPlayer

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Высоких Андрей

Отправлено 17 апреля 2012 - 12:33

to biomaks - Нет, пробовал в FireFox - все ОК.
Искал в багах селениума, не нашел.
Хотя в Jire видел еще на RC1 похожий issue, но они не получили продолжения.

to user12 - driver.findElementByXPath("//img[@onclick='javascript:onEnter()']").click(); - валится на уровне finder в IE6
  • 0

#5 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 17 апреля 2012 - 13:39

Насколько я знаю, то элемент в WD ищется так:

driver.FindElement(By.XPath(locator));
  • 0

#6 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 17 апреля 2012 - 13:58

driver.findElementByXPath("//img[@onclick='javascript:onEnter()']").click();
Походу что-то с xpath в ie.

Может попробуйте другой локатор юзнуть для нахождения данного элемента?
  • 0

#7 ganzalik228

ganzalik228

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Артур

Отправлено 17 апреля 2012 - 15:37

driver.findElement(By.XPath("//img[@onclick='javascript:onEnter()']").click();
по-идее вот так вот правильно. Ну естественно вместо .click вставляете то, что нужно.
  • 0

#8 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 17 апреля 2012 - 15:56

By.XPath("//img[@onclick='javascript:onEnter()']")
названия методов в java с маленькой пишутся....
driver.findElement(By.xpath("//img[@onclick='javascript:onEnter()']")).click();
и
driver.findElementByXPath("//img[@onclick='javascript:onEnter()']").click();
одно и тоже
  • 0

#9 AVIPlayer

AVIPlayer

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Высоких Андрей

Отправлено 17 апреля 2012 - 18:05

driver.findElementByXPath("//img[@onclick='javascript:onEnter()']").click();
Походу что-то с xpath в ie.

Может попробуйте другой локатор юзнуть для нахождения данного элемента?



Попробовал. По src доступаюсь driver.findElementByXPath("//img[@src='x/y/z.gif']"). Судя по всему - это баг для IE.
Но это ж сколько кода рефакторить придется делать.
  • 0

#10 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 17 апреля 2012 - 18:10

Попробовал -- действительно, не находит. А вот так находит:
driver.findElement(By.xpath("//img[contains(@onclick, 'javascript:onEnter()')]"))

  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#11 AVIPlayer

AVIPlayer

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Высоких Андрей

Отправлено 18 апреля 2012 - 08:15

Попробовал -- действительно, не находит. А вот так находит:

driver.findElement(By.xpath("//img[contains(@onclick, 'javascript:onEnter()')]"))


Да, действительно. Так работает.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных