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

Фотография

Проблема с xpath (?) в IE


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

#1 alex7kir

alex7kir

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

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 08 сентября 2009 - 11:00

Тест валится в IE8 на следующем шаге:

assertTrue(selenium.isElementPresent("//span[@id='messagesHolder']/div[1]/div[contains(@class,'fs-col-name')]/div/div/div/a[@href='/users/" + login2 + "']"));

В Firefox проходит на ура.

Подозреваю, что дело в том, что IE8 почему-то не находит элемент по такому xpath. Хотя в родном же IE-шном встроенном средстве разработчика видно, что структура элементов верна.

Как-то надо поменять xpath? Кто может подсказать?

Заранее спасибо.
  • 0

#2 NLord

NLord

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

  • Members
  • PipPip
  • 108 сообщений

Отправлено 08 сентября 2009 - 11:30

Тест валится в IE8 на следующем шаге:

assertTrue(selenium.isElementPresent("//span[@id='messagesHolder']/div[1]/div[contains(@class,'fs-col-name')]/div/div/div/a[@href='/users/" + login2 + "']"));

В Firefox проходит на ура.

Подозреваю, что дело в том, что IE8 почему-то не находит элемент по такому xpath. Хотя в родном же IE-шном встроенном средстве разработчика видно, что структура элементов верна.

Как-то надо поменять xpath? Кто может подсказать?

Заранее спасибо.


А что-нибудь попроще-покороче, вроде

assertTrue(selenium.isElementPresent("//a[@href='/users/" + login2 + "']"));

не сработает?
  • 0
"Меня терзают смутные сомненья..." что это работает.

#3 alex7kir

alex7kir

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

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 08 сентября 2009 - 11:47

А что-нибудь попроще-покороче, вроде

assertTrue(selenium.isElementPresent("//a[@href='/users/" + login2 + "']"));

не сработает?


Нет, нужен элемент именно на конкретном месте, так как таких же на странице может быть несколько.
  • 0

#4 Biasha

Biasha

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

  • Members
  • PipPip
  • 130 сообщений
  • Город:СПб

Отправлено 08 сентября 2009 - 12:13

А случайно не по таймауту отваливается? В ИЕ XPath безумно тормозит.
  • 0
Молодой пожарный не боится пламя!

#5 alex7kir

alex7kir

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

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 08 сентября 2009 - 12:26

А случайно не по таймауту отваливается? В ИЕ XPath безумно тормозит.


Нет, просто пишет, что элемент не найден (ассерт дает false вместо true).
  • 0

#6 Biasha

Biasha

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

  • Members
  • PipPip
  • 130 сообщений
  • Город:СПб

Отправлено 08 сентября 2009 - 12:34

Попробуйте испольхзовать css вместо xpath.
  • 0
Молодой пожарный не боится пламя!

#7 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 08 сентября 2009 - 12:36

Есть мнение, что проблема схожа с этой: Поиск ссылки через XPATH

Если так, то при тестах на ИЕ Вам поможет вот что:

assertTrue(selenium.isElementPresent("//a[@href='{HOST}/users/" + login2 + "']"));
  • 0
Алексей Булат
Про Тестинг

#8 barancev

barancev

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

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


Отправлено 08 сентября 2009 - 13:00

Есть мнение, что проблема схожа с этой: Поиск ссылки через XPATH

Если так, то при тестах на ИЕ Вам поможет вот что:

assertTrue(selenium.isElementPresent("//a[@href='{HOST}/users/" + login2 + "']"));

Ссылка неточная, вот правильная: http://software-test...topic15476.html
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 alex7kir

alex7kir

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

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:Алексей


Отправлено 09 сентября 2009 - 12:35

Есть мнение, что проблема схожа с этой: Поиск ссылки через XPATH

Если так, то при тестах на ИЕ Вам поможет вот что:

assertTrue(selenium.isElementPresent("//a[@href='{HOST}/users/" + login2 + "']"));


Честно говоря, не совсем понял, что именно предлагается сделать... :victory:
Видно, маловато опыта еще в Selenium и Java.

Но решил проблему: написал через css selector, вот так:
assertTrue(selenium.isElementPresent("css=span#messagesHolder div div.fs-col-name div div div a[href=\"/users/" + login2 + "\"]"));
и нормально, IE скушал. )
  • 0


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

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