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

Фотография

Проблема: Selenium не видит элементов после работы с апплетом


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

#1 Vedzmak

Vedzmak

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 14 марта 2011 - 09:03

Такая ситуация.
Работаю SeleniumRC + Java.
Есть страница на которой ссылка на регистрацию. после нажатия на эту ссылку появляется апплет в котором происходит ввод данных.
Так как селениумом поля для ввода из апплета не выковырять, нашел как обойти этот ввод, используя selenium.windowMaximize + Java-робота ну или непосредственно selenium.keyPressNative
Но после этого возникла проблема, selenium не может найти ни один элемент, пробовал даже ставить фокус на страницу но он не находил даже страницы.
может кто-нибуть сталкивался с такой проблемой?
  • 0

#2 Vedzmak

Vedzmak

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 14 марта 2011 - 13:18

Продебажил скрипт и обнаружил что после логина selenium продолжает работу не в том же окне браузера где начинал работать, а пытается работать в окне с Selenium Remote Control. Может кто-нибудь знает как переключится на другое окно. Windows focus не поможет так как это окна двух разных firefoxов.
  • 0

#3 contestar

contestar

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

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

Отправлено 14 марта 2011 - 14:02

selenium.selectWindow("windowID) - должно помочь.
  • 0

#4 Vedzmak

Vedzmak

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 14 марта 2011 - 15:48

Перепроверил еще раз, и обнаружил что окно все таки то что нужно. Но после отработки робота и Thread.sleepб элементы не находятся ни по Xpath не по имени не по id.
  • 0

#5 contestar

contestar

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

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

Отправлено 15 марта 2011 - 08:31

Приведите пример какого-либо элемента из этого окна. Во-первых, сам код элемента, а во-вторых - как вы к нему обращаетесь.
И как вы определили, что окно именно то?
  • 0

#6 Vedzmak

Vedzmak

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 15 марта 2011 - 12:32

Окно определяется просто, я просто вызвал selenium.getAllWindowNames(); selenium.getAllWindowTitles(); selenium.getAllWindowIds(); и проверил что они возвращают, а возвращали они данные только с одной страницы и страница эта оказалась моей.
На счет примера:
<div id="navigation">
<ul>
<li>
<a href="engine?usecase=menu&amp;command=openmenu&amp;"><span>Min konto</span></a>
</li>
</ul>
</div>

Вызывал через selenium.click("link = Min konto")
selenium.click("X-path элемента")
Получилось вызвать через selenium.click("//div[@id='navigation']/ul/li[1]/a/span"). Не знаю почему через X-path не прошло, по сути должно было сработать. В процессе поиска решения возник вопрос: возможно ли кликнуть в данном случае именно по имени, так как нужно проверять в то же время и название этого меню?
  • 0

#7 contestar

contestar

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

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

Отправлено 16 марта 2011 - 08:24

Вызывал через selenium.click("link = Min konto")
selenium.click("X-path элемента")
Получилось вызвать через selenium.click("//div[@id='navigation']/ul/li[1]/a/span"). Не знаю почему через X-path не прошло, по сути должно было сработать. В процессе поиска решения возник вопрос: возможно ли кликнуть в данном случае именно по имени, так как нужно проверять в то же время и название этого меню?

Неверно был задан локатор - вот в чём была ваша проблема. В ответ на ваш вопрос могу предложить следующее:
selenium.click(//div[@id='navigation']/ul/li[1]/a/span[text()='Min konto']) или же вообще сократить до selenium.click("//span[text()='Min konto']"), если подобного элемента больше нет на странице.
  • 0

#8 Vedzmak

Vedzmak

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

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Николай

Отправлено 17 марта 2011 - 07:29

Спасибо за помощь. Обязательно попробую данный вид клика.
  • 0


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

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