2012-12-12 51 views
0

我在Ubuntu 12.04桌面上的Ruby 1.8.7上使用Selenium WebDriver。我有一個腳本將一堆數據文件的內容(作爲字符串)一次轉儲到一個表單中。數據文件的大小範圍從44kB到92kB。我可以手動複製並粘貼到textarea的內容沒有錯誤。但是,當我在元素腳本中使用帶有send_keys的Ruby腳本時,腳本會失敗,並且不會報告錯誤。Selenium WebDriver/Ruby send_keys字符限制

我知道我有正確的元素,並且send_keys總的來說工作,因爲我發送了'hello world'給textarea。我也知道我正確地抓取輸入文件,因爲我可以逐行分解它,並將文件的所有內容一次一行地發送到textarea一行,而不會出錯。

逐行send_keys是可行的,但相當慢。我假設這個問題是某種形式的send_keys限制字節數/字符數等。而且我的輸入文件已經超過了這個限制。不過,我的Google搜索在這方面沒有任何發現。

有誰知道這裏的限制是什麼(send_keys或其他)?理想情況下,如果它是1000個字符的send_keys限制,我會一次將輸入文件分成1000個字符,並循環直到整個文件使用send_keys發送。 (這肯定比一次發送1行更快。)有沒有其他的send_keys,我不知道,可以發送一個這種大小的字符串?

感謝

回答

2

您可以使用clipboard gem,然後只需使用鍵盤快捷鍵來此元素上粘貼。

Clipboard.copy(data) 
$driver.find_element(:id, "elementFoo").send_keys [:control, 'v'] 
+0

最初我不願意爲此添加另一顆寶石。然而,在這種情況下,我很高興你提到了寶石,因爲我一直想知道如何訪問剪貼板,這也只是回答。謝謝 –

+1

注意:爲了在Ubuntu上工作,你需要確保安裝了xclip,否則它將恢復使用基於文件的剪貼板,這將不起作用 'sudo apt-get install xclip' –