17

Selenium から Poltergeist に切り替えたいのですが、<body>タグへのキーボード入力のようなバーコード スキャナーをシミュレートする必要があります。私はSeleniumでこのコードを使用します:

native.send_keys(send_key)

ポルターガイストでキーの文字列を任意の要素 (つまり、入力ではない) に送信する方法はありますか?

4

4 に答える 4

18

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
于 2014-02-13T22:42:26.630 に答える
3

PhantomJS 1.7 (2012 年 9 月 22 日リリース) 以降、 を使用してキーボード イベントをヘッドレス ブラウザーに送信できますpage.sendEvent

ドキュメントには、シフト A をシミュレートする例が含まれています。

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

その入力がページによってどの程度正確に処理されるか (つまり、対象となるもの) は、フォーカスがどこにあるかなど、ページの状態によって異なります。

于 2013-06-11T13:26:08.047 に答える
2

いいえ、現時点ではこれを行う方法はありません。PhantomJS はこのための API を提供しているため、将来追加される可能性がありますが、現在はサポートされていません。

Javascript で DOM キーボード イベントを生成することをお勧めします。または、Selenium を使用してこれらの仕様を保持し、残りは Poltergeist を使用します。

于 2013-03-05T22:26:43.930 に答える