0

我在 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 对字节/字符/等数量的限制。并且我的输入文件已超出该限制。然而,我的谷歌搜索在这方面一无所获。

有谁知道这里的限制是什么(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 回答