1

私は、モジュール selenium と xlrd を使用して、Excel から Web フォームに多数のデータ セル (~1000) を入力しています。Selenium の send_keys を使用してこれを行うコードを正常に作成しましたが、現在、フォームが送信される前に入力の処理が原因で大幅な遅延が発生しています。私は現在、すべてのセルの値を含む 1 つの大きな文字列をコンパイルし、send_keys を使用して、次のように一度にフォームに入れます。

for z in range(1000):
        ss = ss + (str(sh.row_values(z)[1])) + "\n"
form.send_keys(ss)

1000個のExcelセルを手動でコピーしてフォームに貼り付けるだけで、送信前の処理遅延がほとんどないことに気付いたので、セレンのsend_keysを使用せずに目的を達成するためのより効率的な方法があると思います. 助けていただければ幸いです。

4

2 に答える 2

0

JavaScript が関係していない場合は、Mechanize を試すことができます

http://wwwsearch.sourceforge.net/mechanize/

これは、Mechanize でフォームを処理する方法です -

http://wwwsearch.sourceforge.net/mechanize/forms.html

于 2012-05-11T13:51:18.237 に答える
0

フィールドの値を自分で設定する代わりに、javascript を使用することを検討してください。

ここでの答えは、Selenium を使用して Python で JavaScript を実行する方法を示しています。テキスト フィールドの値を設定するとき、アクションはほぼ瞬時に行われ、フォームの処理が遅くなるという効果を得るべきではありません。

ただし、API で指定されたセレンの代わりに JavaScript を使い始めるとすぐに、組み込まれている機能の一部が失われ始めることに注意してください。たとえば、ページがまだ読み込まれていないときに JavaScript を実行しようとすると、アクション要素が見つからないためすぐに失敗しますが、要素が見つからない場合、Selenium はコンテンツが最終的にロードされるかどうかを確認するために少し待ちます。

于 2012-05-11T15:17:22.250 に答える