Selenium から Poltergeist に切り替えたいのですが、<body>
タグへのキーボード入力のようなバーコード スキャナーをシミュレートする必要があります。私はSeleniumでこのコードを使用します:
native.send_keys(send_key)
ポルターガイストでキーの文字列を任意の要素 (つまり、入力ではない) に送信する方法はありますか?
Selenium から Poltergeist に切り替えたいのですが、<body>
タグへのキーボード入力のようなバーコード スキャナーをシミュレートする必要があります。私はSeleniumでこのコードを使用します:
native.send_keys(send_key)
ポルターガイストでキーの文字列を任意の要素 (つまり、入力ではない) に送信する方法はありますか?
Poltergeistは 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
PhantomJS 1.7 (2012 年 9 月 22 日リリース) 以降、 を使用してキーボード イベントをヘッドレス ブラウザーに送信できますpage.sendEvent
。
ドキュメントには、シフト A をシミュレートする例が含まれています。
page.sendEvent('keypress', page.event.key.A,
null, null, 0x02000000 | 0x08000000 );
その入力がページによってどの程度正確に処理されるか (つまり、対象となるもの) は、フォーカスがどこにあるかなど、ページの状態によって異なります。
いいえ、現時点ではこれを行う方法はありません。PhantomJS はこのための API を提供しているため、将来追加される可能性がありますが、現在はサポートされていません。
Javascript で DOM キーボード イベントを生成することをお勧めします。または、Selenium を使用してこれらの仕様を保持し、残りは Poltergeist を使用します。