2012-05-11 29 views
1

我使用模塊selenium和xlrd從excel輸入數據(〜1000)的許多單元格到Web窗體。我已經成功編寫了使用selenium的send_keys來完成此操作的代碼,但由於在提交表單之前處理了輸入,因此目前存在很大的延遲。我目前編譯包含每一個單元格的值一個大的字符串,然後用send_keys付諸形式一次性全部是這樣的:Python:有效地在Web表單中輸入大型列表?

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

我注意到,當我簡單地複製和粘貼的Excel 1000單元格手動添加到表單中,在提交之前幾乎沒有處理延遲,所以我想有一種更有效的方法可以在不使用selenium的send_keys的情況下完成我想要的操作。我將不勝感激任何幫助。

+0

你能夠考慮使用無頭系統,只是提交表單作爲HTTP請求,然後檢查響應? –

回答

0

你可能做的是考慮使用而不是僅僅設置字段的值。

The answer here顯示瞭如何在python中用selenium執行javascript。當設置文本字段的值時,動作幾乎是瞬時的,您不應該慢慢獲得表單處理的效果。

請記住,只要您開始使用JavaScript而不是給定的API,您將開始失去其內置的一些功能。例如,如果頁面尚未加載並且您嘗試執行javascript,因爲它無法找到元素,動作將立即失敗,而Selenium會滿意地等待一下,如果它找不到該元素是否會最終加載。