2017-10-15 47 views
0

我已經自動完成了一個從文本文件中填充Web表單的任務。這個文本文件可能會變得很大,在selenium + python3中使用send_keys()函數需要很長時間。在Python 3中,Selenium的send_keys有更快的選擇嗎?

是否有更快的選擇,就像複製/粘貼的工作方式一樣?

這是我如何使用它在我的腳本:

reportFile = open(reportFilePath,'r') 

for line in reportFile.read(): 
    messageElem.send_keys(line) 
reportFile.close() 

我在網上看了一下,有替代品,但只有在JS。我正在尋找一種更快速的方式從python 3專門添加文本。

+0

這很安靜,不清楚你在問什麼。你爲什麼要發送單獨的字符,而你可以發送線路,也有可能一次轉換整個文件並作爲字符串發送 –

+0

在Selenium的Java和Javascript客戶端API中,sendKeys()接受一個字符串數組作爲參數,所以你閱讀該文件轉換成行,並且只有一次調用send_keys(行)。或將文件讀入單個字符串,然後調用一次send_keys(content)。如果以上所有內容都不是很快,你可以嘗試使用python來執行命令來打開安裝在機器上的文本編輯器的報告文件,專注於文本編輯器,使用CTRL + A和CTRL + C,然後專注於輸入框頁面,send_keys(CTRL + V) – yong

回答

0

的確,Visweswaran Nagasivam是正確的。我正在逐字閱讀文件。對我來說,正確的方法是使用readlines()函數:

#open the report file 
reportFile = open(reportFilePath,'r') 

#iterate over each line of the report file and fill in the message body 
for line in reportFile.**readlines**(): 
    messageElem.send_keys(line) 

#close the file 
reportFile.close()