1

我正在使用模块 selenium 和 xlrd 将许多数据单元格(~1000)从 excel 输入到 Web 表单中。我已经使用 selenium 的 send_keys 成功编写了执行此操作的代码,但是由于在提交表单之前处理输入,目前存在很大的时间延迟。我目前编译一个包含每个单元格值的大字符串,然后使用 send_keys 将其一次性放入表单中,如下所示:

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

我注意到,当我简单地将 1000 个 excel 单元格手动复制并粘贴到表单中时,提交前几乎没有处理延迟,所以我想有一种更有效的方法可以在不使用 selenium 的 send_keys 的情况下完成我想要的事情。我将不胜感激任何帮助。

4

2 回答 2

0

您可能会考虑使用 javascript 来自己设置字段的值。

这里的答案显示了如何在 python 中使用 selenium 执行 javascript。设置文本字段的值时,动作几乎是瞬时的,您不应该获得表单处理缓慢的效果。

但是请记住,一旦您开始使用 javascript 而不是 selenium 给定的 API,您将开始失去其内置的一些功能。例如,如果页面尚未加载并且您尝试执行 javascript,则操作将立即失败,因为它找不到元素,而 Selenium 会满足地等待一段时间,如果它没有找到元素,看看它是否最终会加载。

于 2012-05-11T15:17:22.250 回答
0

如果没有涉及到 javascript,你可以试试 Mechanize

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

这就是您可以使用 Mechanize 处理表单的方式 -

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

于 2012-05-11T13:51:18.237 回答