本文通過python3、第三方python庫Selenium和谷歌瀏覽器Chrome,完成WPS表單的自動填寫。
python3的安裝:略,網上都有教程。
Selenium的安裝:在命令行輸入pip3 install selenium
并回車即可完成安裝,如果不成功,查找網上教程。
Chrome的安裝:略,網上都有教程。
因為Selenium需要ChromeDriver來驅動Chrome,所以還需要下載驅動ChromeDriver。下面重點介紹一下ChromeDriver的安裝(如不太清楚,查找網上教程):
1.確定谷歌瀏覽器的版本號:首先打開谷歌瀏覽器,點擊右上角豎著的三個點—幫助—關于Google Chrome,可以看到谷歌瀏覽器的版本號。
2.下載ChromeDriver:從ChromeDriver鏡像站里找到谷歌瀏覽器版本號對應的文件夾并打開,從中找到對應的系統后下載。
3.配置:將壓縮包解壓后得到可執行文件,將其配置到環境變量Path下,Windows可以直接放到Python的Scripts目錄下(因為該目錄一般都在環境變量里)。
4.驗證:在命令行輸入chromeDriver并回車,如果不報錯,即完成安裝。 也可以采用火狐瀏覽器(也需要額外下載相應驅動)和PhantomJS瀏覽器引擎(不需要額外下載相應驅動,但是無可視化界面)。
完成以上步驟即可進行代碼編寫。
這個是測試用的WPS表單。
如上圖,我們先分析一下這個表單:
這個表單已經列舉出大部分WPS表單問題形式:
1.像問題1和3這種需要輸入文字或者數字的都屬于INPUT組件。我們用如下代碼操作這種組件。其中?
要修改為N-1
,表示第N
個問題,比如問題1的話,input_?
應該改為input_0
;問題3的話,input_?
應該改為input_2
。'XXX'
應改改為自己的內容,即文字或者數字。
answer = wait.until(EC.element_to_be_clickable((By.ID, 'select_label_wrap_?_!')))answer.click()
2.像問題2、4和6(其中問題6后面再說)這種不需要輸入只需要一次選擇的都屬于LABEL組件(本來應該是單選和多選組件,但是WPS表單是用Label組件實現的)。我們用如下代碼操作這種組件。其中?
要修改為N-1
,表示第N
個問題,用法同上;'!'
也要修改為N-1
,表示第N
新聞熱點
疑難解答