0

Ubuntu 12.04 デスクトップの Ruby 1.8.7 で Selenium WebDriver を使用しています。一度に 1 ファイルずつ一連のデータ ファイルの内容を (文字列として) フォームにダンプするスクリプトがあります。データ ファイルのサイズは 44kB から 92kB です。エラーなしで内容を手動でコピーしてテキストエリアに貼り付けることができます。ただし、要素に send_keys を指定して Ruby スクリプトを使用すると、スクリプトが停止して失敗し、エラーが報告されません。

私は正しい要素を持っていることを知っており、「hello world」をテキストエリアに送信したため、send_keys は一般的に機能します。また、入力ファイルを 1 行ずつ分割し、ファイルの内容全体を一度に 1 行ずつエラーなくテキストエリアに送信できるため、入力ファイルを正しく取得していることもわかります。

行ごとの send_keys は実行可能ですが、かなり遅いです。この問題は、バイト/文字/その他の数に対する send_keys の制限の何らかの形であると想定しています。入力ファイルがその制限を超えていること。ただし、私の Google 検索では、この点に関して何も見つかりませんでした。

ここでの制限が何であるかを知っている人はいますか (send_keys またはそれ以外)? 理想的には、send_keys の制限が 1000 文字である場合、入力ファイルを一度に 1000 文字ずつ分割し、send_keys を使用してファイル全体が送信されるまでループします。(そして、一度に1行ずつ送信するよりも確実に高速です。)このサイズの文字列を送信できる、私が知らないsend_keysの代替手段はありますか?

ありがとう

4

1 に答える 1

2

クリップボード gemを使用してから、キーボード ショートカットを使用してこの要素に貼り付ける ことができます。

Clipboard.copy(data)
$driver.find_element(:id, "elementFoo").send_keys [:control, 'v']
于 2012-12-13T00:29:27.737 に答える