Win10:Python3.4+Selenium3.141.0環(huán)境集成(谷歌瀏覽器)

最近由于學習需要,在之前安裝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更新服務:


關閉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)

輸入完畢后,運行代碼塊

打開鏈接頁面并登錄


代碼塊在Chrome中打開的頁面

登錄成功后,控制臺打印如下信息:

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)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容