最近由于學習需要,在之前安裝Python3.4的基礎上,安裝了Selenium3來為后續(xù)的學習搭建環(huán)境。
經(jīng)過了1天的嘗試,解決了一些問題,并成功集成兩個工具。
涉及到的軟件包括:
Python3.4、PyCharm、Selenium3.141.0、ChromeDriver
安裝Python和Pycharm網(wǎng)上有很多教程,這里就不贅述。文章主要描述安裝Selenium和ChromeDriver時遇到的問題及解決方案
1,安裝Selenium:用Python自帶的pip(3)命令在命令行安裝
說明:有些Python版本可能使用pip可以安裝,但是我的版本3.4,在用pip的時候報錯(提示:Package 'pip' requires a different Python: 3.4.3 not in '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*'),后來改為pip3安裝就成功了。
安裝:pip3 install -U selenium
這個命令默認安裝的是當前Python版本支持的Selenium版本,3.141.0(我使用命令安裝的時候,會有一個上個版本的卸載過程。因為我安裝了3.4.3版本,因此會看到下圖執(zhí)行的行中會有卸載命令)

查看安裝結(jié)果:import selenium+help(selenium)(或者在命令行使用pip3 show selenium)
在命令行運行python進入控制臺(或者直接打開python IDLE控制臺),先import selenium加載Selenium,再help(selenium)查看版本,如下圖:

安裝指定版本:pip3 install selenium==3.4.3
以上命令加載完成后,重啟IDLE來查看當前Selenium版本
2,安裝 ChromeDriver
驅(qū)動下載地址:http://chromedriver.storage.googleapis.com/index.html

先查看本機Chrome的版本。再從下載地址中找到對應版本下載
說明:Chrome有自動更新功能,每次打開瀏覽器都會更新,建議關閉自動更新,不然還是有點麻煩的。關閉方法:服務臺(services.msc)禁用兩個Google更新服務:

我本機的Chrome是77.0.3865.120,因為下載地址沒有對應的版本,我直接下載了最新的77版本,即77.0.3865.40

下載后解壓:
下載回來的ChromeDriver,我分別放在了Chrome的安裝目錄:
C:\Program Files (x86)\Google\Chrome\Application
和Python的安裝目錄:
E:\Python34
并在環(huán)境變量Path中添加了Google安裝目錄:
C:\Program Files (x86)\Google\Chrome\Application
不需要運行。
至此,環(huán)境配置完成。以下便是測試了
3,驗證環(huán)境是否配置成功
----打開Pycharm,新建一個項目,并New一個Python Flie
----敲入代碼:
from selenium import webdriver#從Selenium模塊調(diào)用webdriver
import time#調(diào)用time模塊,用來創(chuàng)建休眠(這里也可以用from time import sleep來直接調(diào)用sleep)
driver=webdriver.Chrome()# 聲明一個司機,司機是個Chrome類的對象
driver.get("http://demo.ranzhi.org")# 讓司機加載一個網(wǎng)頁
time.sleep(3)#讓司機等待3秒,如果使用from time import sleep調(diào)用,這里應寫成sleep(3)
# 開始登錄
# 1\. 讓司機找用戶名的輸入框(下面是用css元素定位函數(shù)進行元素定位)
we_account=driver.find_element_by_css_selector('#account')
we_account.clear()
we_account.send_keys("demo")
# 2\. 讓司機找密碼的輸入框we_password=driver.find_element_by_css_selector('#password')
we_password.clear()we_password.send_keys("demo")
# 3\. 讓司機找 登錄按鈕 并 單擊
driver.find_element_by_css_selector('#submit').click()
time.sleep(3)
輸入完畢后,運行代碼塊
打開鏈接頁面并登錄

登錄成功后,控制臺打印如下信息:
Process finished with exit code 0
至此,集成成功
可能遇到的問題:
1——selenium.common.exceptions.NoSuchElementException: Message: no such element
元素定位時出錯。剛開始的時候,我的密碼框定位時,少寫了一個#,導致定位失敗。
元素定位出錯,有幾方面的原因
1--網(wǎng)絡不穩(wěn)定,網(wǎng)速快或慢都可能導致定位失敗。這時可以多嘗試幾遍,以上代碼的time.sleep()等待時間就是為了防止自動化程序加載過快導致定位失敗的問題發(fā)生。
2--定位代碼本身的問題,如我上述描述的問題,就是因為定位腳本寫錯導致。檢查一下定位腳本
可能遇到的問題2——selenium.common.exceptions.WebDriverException: Message: invalid argument:
這個問題是由于Python版本跟Selenium版本不一致導致的。我之前安裝Selenium時,使用指定版本命令安裝了Selenium3.4.3,導致了版本問題。重新安裝默認支持版本即可(見步驟2)