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

Фотография

Debug проходит степ, а обычный режим - нет


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

#1 do4_sfinksa

do4_sfinksa

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

  • Members
  • Pip
  • 52 сообщений


Отправлено 15 января 2013 - 07:32

Здравствуйте!

Столкнулась со следующей проблемой. В тесте на Webdriver(java) надо искать элемент на странице по xpath, затем кликать по нему. Скопировала xpath из firebug (xpath не меняется), вставила в код. В обычном режиме тест виснет - не кликает по этому элементу, в дебаге - всё отлично проходит. помогите, пожалуйста, разобраться

WebElement picture = driver.findElement(By.xpath(".//*[@id='results']/div/section[2]/div[2]/div[2]/ul/li[1]/a/span[1]/img"));
picture.click();
  • 0

#2 achumagin

achumagin

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

  • Members
  • PipPip
  • 145 сообщений
  • ФИО:Alexey Chumagin
  • Город:Казань

Отправлено 15 января 2013 - 07:53

Добрый день!
Скорее всего элемент не успевает перейти в состояние, когда действие клик активно. (элемент не появился, элемент не виден)

Попробуйте поставить ожидание перед тем как кликнуть на элемент.
  • 0
ap-test-team.blogspot.com

#3 do4_sfinksa

do4_sfinksa

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

  • Members
  • Pip
  • 52 сообщений


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

Добрый день!
Скорее всего элемент не успевает перейти в состояние, когда действие клик активно. (элемент не появился, элемент не виден)

Попробуйте поставить ожидание перед тем как кликнуть на элемент.


он даже не видит этот элемент (1-я строка не срабатывает) - даже формально тест не падает, он просто всё время проводит в ожидании.
  • 0

#4 achumagin

achumagin

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

  • Members
  • PipPip
  • 145 сообщений
  • ФИО:Alexey Chumagin
  • Город:Казань

Отправлено 15 января 2013 - 08:17

Есть ссылка на страницу?
  • 0
ap-test-team.blogspot.com

#5 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 15 января 2013 - 08:27

а если поставить задержку после открытия страницы, пару секунд? Вдруг какой-то элемент не успевает отрисоваться или ещё чего
размеры окна одинаковые в обоих случаях?
  • 0

#6 do4_sfinksa

do4_sfinksa

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

  • Members
  • Pip
  • 52 сообщений


Отправлено 15 января 2013 - 08:38

а если поставить задержку после открытия страницы, пару секунд? Вдруг какой-то элемент не успевает отрисоваться или ещё чего
размеры окна одинаковые в обоих случаях?


WebElement picture = driver.findElement(By.xpath(".//*[@id='results']/div/section[2]/div[2]/div[2]/ul/li[1]/a/span[1]/img"));
picture.wait();

сделала так - результата ноль. Элемент этот он не видит, никакого исключения не выдаёт. Окно браузера вы имеете в виду? да, всё идентично.

причем применение css локатора даёт такой же результат. И ещё: в этом же тесте другой элемент совершенно нормально искался по xpath...
  • 0

#7 do4_sfinksa

do4_sfinksa

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

  • Members
  • Pip
  • 52 сообщений


Отправлено 15 января 2013 - 08:40

Есть ссылка на страницу?

http://www.hlx.com/Angebote/Kanaren?attributes=GT03-HONE&umt=2&ucid=10967, первая картинка (отель)
  • 0

#8 achumagin

achumagin

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

  • Members
  • PipPip
  • 145 сообщений
  • ФИО:Alexey Chumagin
  • Город:Казань

Отправлено 15 января 2013 - 10:49


Есть ссылка на страницу?

http://www.hlx.com/Angebote/Kanaren?attributes=GT03-HONE&umt=2&ucid=10967, первая картинка (отель)


Проверил на C# (на ява не проверял, но, думаю, разница не большая)

1. Открываю страницу по ссылке
2. Жду пока появится элемент
3. Кликаю по этому элементу

Все работает.

Теперь по вашим ошибкам

WebElement picture = driver.findElement(By.xpath(".//*[@id='results']/div/section[2]/div[2]/div[2]/ul/li[1]/a/span[1]/img"));
picture.wait();

Так не будет работать, потому что, когда вы ищите элемент (первая строка) его еще нет.

Слишком длинный и сложный xpath, используйте вот такой //*[@alt='Beatriz Atlantis'], точку впереди ставить необязательно


На всякий случай приложил код моего примера на c#.

Прикрепленные файлы


  • 0
ap-test-team.blogspot.com

#9 do4_sfinksa

do4_sfinksa

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

  • Members
  • Pip
  • 52 сообщений


Отправлено 15 января 2013 - 11:21

добавила driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); всё работает! спасибо!
  • 0


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

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