Подтвердить что ты не робот

Поддержка send_keys для Poltergeist?

Я хочу переключиться с Selenium на Poltergeist, но мне нужно смоделировать сканер штрих-кода, который выглядит как ввод клавиатуры в тег <body>. Я использую этот код с Selenium:

native.send_keys(send_key)

Есть ли способ с помощью Poltergeist отправить строку ключей произвольному элементу (т.е. не вход)?

4b9b3361

Ответ 1

Полтергейст теперь имеет поддержку send_keys:

element = find('input#id')

# send a simple string
element.native.send_key('String')

# send a series of keystrokes
element.native.send_keys('H', 'elo', :Left, 'l') # => 'Hello'

# symbol for special keys
element.native.send_key(:Enter) # triggers Enter key

Ответ 2

Так как PhantomJS 1.7 (выпущен 2012-09-22), вы можете отправлять события клавиатуры в безгласный браузер, используя page.sendEvent.

Документация включает пример моделирования shift-A:

page.sendEvent('keypress', page.event.key.A, 
               null, null, 0x02000000 | 0x08000000 );

Как именно этот вход обрабатывается страницей (т.е. какой целевой) будет зависеть от состояния страницы, например, где находится фокус.

Ответ 3

Нет, сейчас нет способа сделать это. PhantomJS предоставляет API для этого, поэтому его можно было бы добавить в будущем, но в настоящее время он не поддерживается.

Я предлагаю попробовать генерировать события клавиатуры DOM в Javascript. Или просто сохраните эти спецификации с помощью Selenium и используйте Poltergeist для остальных.