Selenium WebDriver / Ruby send_keys字符限制

时间:2012-12-12 22:56:29

标签: ruby textarea selenium-webdriver

我在Ubuntu 12.04桌面上使用Ruby 1.8.7上的Selenium WebDriver。我有一个脚本,将一堆文件中的一堆数据文件的内容(作为字符串)一次转储到表单中。数据文件的大小从44kB到92kB不等。我可以手动将内容复制并粘贴到textarea中而不会出错。但是,当我在元素上使用带有send_keys的Ruby脚本时,脚本会停止,失败,并且永远不会报告错误。

我知道我有正确的元素,并且send_keys一般有效,因为我已经将'hello world'发送到了textarea。我也知道我正在正确地抓取输入文件,因为我可以逐行拆分它并一次一行地将文件的全部内容发送到textarea而没有错误。

逐行send_keys是可行但相当慢。我假设问题是某些形式的send_keys限制字节数/字符/等。并且我的输入文件已超出该限制。但是,我的Google搜索在这方面没有发现任何内容。

有谁知道这里的限制是什么(send_keys或其他)?理想情况下,如果它是1000个字符的send_keys限制,我会一次打破输入文件1000个字符并循环直到使用send_keys发送整个文件。 (这肯定比一次发送1行更快。)是否有替代send_keys,我不知道,可以发送这样大小的字符串?

由于

1 个答案:

答案 0 :(得分:2)

您可以使用clipboard gem,然后只需使用键盘快捷键粘贴此元素即可。

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