Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2015, 10:33   #1
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию Selenium, HtmlUnitDriver, сделать вставку (ctrl+v)

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

Есть страница сайта, на которой есть элемент textarea, a также на странице есть много трудно-читабельных джава скриптов.
Скрипты после вставки (нажатия ctrl+v или через контекстное меню) текста в textarea, обрабатывают его содержимое и если находят ссылку, то выполняют некоторые действия...

Я пробовал вставлять текст из буфера обмена, так:

Код:

        Actions a = new Actions(driver);
        a.sendKeys(element, Keys.chord(Keys.LEFT_CONTROL+"v")).perform();
        a.contextClick( element ).sendKeys( Keys.chord(Keys.LEFT_CONTROL + "v") ).perform();
        element.sendKeys(Keys.LEFT_CONTROL + "v");
        element.sendKeys(Keys.chord(Keys.LEFT_CONTROL + "v"));
Но ни один из 4 способов не сработал. И вместо текста из буффера обмена я получил в textarea -> "vvvv" (четыре символа "v" ).

Как решить эту проблему?
Нужный мне текст я могу вставить в textarea методом sendKeys, но ка потом эмулировать нажатие клавиш CONTROL+"v"? Может это можно сделать через JS?
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 12.11.2015, 11:43   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А зачем это делать вообще? Не проще без CTRL+V текст отправить?

В chord наверно не +, а , надо.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2015, 14:29   #3
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А зачем это делать вообще?
Для автоматизации. Сейчас человек в ручную выполняет ряд однотипных действий на сайте, это отнимает много времени... Нужно сделать чтобы пользователь при необходимости пользователь только устанавливал нужные ему настройки, а дальше, выполнять однотипную работу должен бот.

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Не проще без CTRL+V текст отправить?
Если имеется ввиду физическое нажатие клавиш, то едва-ли это поможет пользователю сэкономить время...

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
В chord наверно не +, а , надо.
Пробовал (забыл указать здесь этот вариант), не работает.

----------

Как на счет javascript?.. Можно ли им достучатся к нужному обработчику событий, т. е. передать textarea событие нажатия клавиш control+v ? Мне ведь даже не важно произойдет ли при этом вставка текста с буфера. Главное запустить обработчик этого события.
Skype: CODERua

Последний раз редактировалось [CODER]; 12.11.2015 в 14:34.
[CODER] вне форума Ответить с цитированием
Старый 12.11.2015, 14:37   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Если имеется ввиду физическое нажатие клавиш, то едва-ли это поможет пользователю сэкономить время...
Код:
sendKeys("text")
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2015, 14:56   #5
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Код:
sendKeys("text")
Не сработает обработчик события нажатия клавиш control+v, т. к. при этом происходит последовательное нажатие по одной клавише.
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 12.11.2015, 15:10   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И что? Причем тут это?
Там обязательно что ли именно по CTRL+V вставлять в то поле ввода? Почему просто текст с помощью sendKeys нельзя? Странный сайт.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2015, 15:12   #7
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Скажу по секрету, этот странный сайт - facebook
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 12.11.2015, 15:22   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Никогда не использовал CTRL+V для автоматизации фейсбука, всегда работала обычная вставка текста.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2015, 16:06   #9
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Оооо!
Мне нужно вставлять ссылку чтобы подгружалось превью страницы. Вчера пробовал прописывать ссылку вручную, но оказывается чтобы подгружался превью, нужно после ссылки поставить пробел...
Я пользуюсь фейсбуком, как правило, только для регистраций, поэтому и не знал о такой возможности публикаций. Знаю что протупил из-за того что не попробовал написать пробел, но как-то так.

Решение:
Код:
element.sendKeys(url+" ");
П. С. Alex11223, спасибо за помощь. Плюсонуть сообщение не могу, т. к. уже сделал это в другой теме.
Skype: CODERua

Последний раз редактировалось [CODER]; 12.11.2015 в 17:24.
[CODER] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами в С++ с вставкой на Assembler (сделать вставку) Ospalex Помощь студентам 4 13.02.2015 15:47
Запрет на вставку, на специальную вставку Аслан Абдрахманов Microsoft Office Excel 11 11.02.2014 10:21
Как сделать вставку копированного диапазона в ячейки не пустых строк Xstroy Microsoft Office Excel 0 24.06.2013 23:45
Delphi.БД Access.как сделать вставку в поле из одной таблицы в другую? JuliaKiK Помощь студентам 1 02.05.2013 01:12
Вывод соседних символов заданного символа: сделать вставку в Си dima_V Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.12.2012 21:25