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

Фотография

Симуляция нажатия комбинации клавиш в Selenium RC.


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

#21 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 16 ноября 2010 - 10:28

А что делать, если это все таки OnLoad? Есть какой-нибудь способ обойти эту фичу Seleniuma?

Проще всего попросить программистов перенести это дело из onLoad в более правильное, так как в любом случае выкидывать alert'ы из onLoad некрасиво с точки зрения программирования. Но тут всё зависит от сговорчивости разработчиков. Ну а если нет, то описанный мною способ. Остальные способы которые знаю намного сложнее.
  • 0

#22 gri3li

gri3li

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

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

Отправлено 25 ноября 2010 - 10:01

Такая конструкция не работает! В буфер ничего не попадает, нужно так

selenium.keyDownNative(Integer.toString(KeyEvent.VK_CONTROL));
selenium.keyPressNative(Integer.toString(KeyEvent.VK_C));
selenium.keyUpNative(Integer.toString(KeyEvent.VK_CONTROL));


А как можно подобным способом скопировать выделенный текст и потом вставить в нужное поле?
  • 0

#23 Taras

Taras

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Тарас Анатольевич Мордвинов
  • Город:Донецк

Отправлено 26 ноября 2010 - 14:47


Такая конструкция не работает! В буфер ничего не попадает, нужно так

selenium.keyDownNative(Integer.toString(KeyEvent.VK_CONTROL));
selenium.keyPressNative(Integer.toString(KeyEvent.VK_C));
selenium.keyUpNative(Integer.toString(KeyEvent.VK_CONTROL));


А как можно подобным способом скопировать выделенный текст и потом вставить в нужное поле?

Прям так и можно использовать, вот пример, при условии, что нужный текст уже выделен:
selenium.keyDownNative(Integer.toString(KeyEvent.VK_CONTROL));

selenium.keyPressNative(Integer.toString(KeyEvent.VK_C));

selenium.keyUpNative(Integer.toString(KeyEvent.VK_CONTROL));

selenium.setCursorPosition("текстовое поле, в которе нужно вставить", "0");

selenium.keyDownNative(Integer.toString(KeyEvent.VK_CONTROL));

selenium.keyPressNative(Integer.toString(KeyEvent.VK_V));

selenium.keyUpNative(Integer.toString(KeyEvent.VK_CONTROL));
Но это пляски с бубнами, если это просто текстовые поля, то лучше сделать так
String cp;
cp=selenium.getText("Откуда копировать");
selenium.type("куда копировать", cp);

  • 0

#24 gri3li

gri3li

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

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

Отправлено 29 ноября 2010 - 15:12

Спасибо большое.
А возможно каким-то из этих способов скопировать конец ссылки, в адресной строке браузера? Или это как для селениума уже из области фантастики?
Дело в том что мне нужно скопировать айдишку (она динамическая) из строки браузера, и потом эту айдишку вставить в определенное поле.
Айдишка находится в конце ссылки, кол-во цифр может быть от 3 до 8 (например http://сайт.уа/пейдж4571311)
  • 0

#25 Taras

Taras

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:Тарас Анатольевич Мордвинов
  • Город:Донецк

Отправлено 29 ноября 2010 - 15:44

Спасибо большое.
А возможно каким-то из этих способов скопировать конец ссылки, в адресной строке браузера? Или это как для селениума уже из области фантастики?
Дело в том что мне нужно скопировать айдишку (она динамическая) из строки браузера, и потом эту айдишку вставить в определенное поле.
Айдишка находится в конце ссылки, кол-во цифр может быть от 3 до 8 (например http://сайт.уа/пейдж4571311)

Вам просто нужно подрезать строку. "http://сайт.уа/пейдж" это константа на сколько я понял, значит отрезаем первые 20 символов из переменной, соответственно получаем такой код
String cp;
String page="http://сайт.уа/пейдж";
cp=selenium.getText("Откуда копировать");
cp=cp.substring(20);
selenium.type("куда копировать", page+cp);
В cp останется только id, хотя проверте, может я общитался
  • 0

#26 gri3li

gri3li

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

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

Отправлено 29 ноября 2010 - 16:14

Вам просто нужно подрезать строку. "http://сайт.уа/пейдж" это константа на сколько я понял


Не, это не константа, ссылка с id'шкой образовывается при переходе с другой страницы.
Тоесть, план действий такой:) селениум кликает по ссылке, переходит на страничку, в которой в адресной строке есть айдишка, копирует айдишку, переходит на другую страницу, вставляет айдишку в нужное поле и жмет ОК:)
  • 0

#27 mcreature

mcreature

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

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

Отправлено 30 ноября 2010 - 08:59

Наверное сначала надо забрать весь адрес с помощью selenium.getLocation(), потом регулярными выражениями достать id.
  • 0

#28 gri3li

gri3li

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

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

Отправлено 30 ноября 2010 - 09:26

Наверное сначала надо забрать весь адрес с помощью selenium.getLocation(), потом регулярными выражениями достать id.


А подробней, пожалуйста?:)
  • 0

#29 vitorg

vitorg

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

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 30 ноября 2010 - 09:35

А подробней, пожалуйста?:)

Подробнее - это написать кусок кода, что скорее всего вам навредит. Не ленитесь, сделайте сами.
  • 0

#30 mcreature

mcreature

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

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

Отправлено 30 ноября 2010 - 09:47

http://ru.wikipedia....ярные_выражения

Я не знаю, какие возможности по работе с шаблонами вам предоставит c# (вы же на нем вроде пишете?), но думаю, что такая функциональность у него должна быть.
Если будет очень необходимо, могу написать кусок кода на java.
  • 0

#31 barancev

barancev

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

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


Отправлено 30 ноября 2010 - 09:51


А подробней, пожалуйста?:)

Подробнее - это написать кусок кода, что скорее всего вам навредит. Не ленитесь, сделайте сами.

В целом согласен, но регулярные выражения в Java действительно с ходу можно и не осилить.
Поэтому, чтобы было проще, используйте библиотеку Jakarta Regexp: http://jakarta.apach...gexp/index.html
RE re = new RE("\\d{3,8}$");
re.match(url);
String id = re.getParen(0);

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

#32 gri3li

gri3li

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

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

Отправлено 30 ноября 2010 - 09:56

ясно, спасибо большое)
  • 0


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

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