最近無聊。又重新裝了個selenium
果然時代變了。安裝的時候的方法和以前不太一樣了。因此覺得有必要單列出來加以說明
另外備注:測試小伙伴們。安裝此類工具報錯。嘗試以下兩個方案之一:
1.請轉stackoverflow
2.code review
下面以第二種方法解決安裝問題
如果你還看的是非官方文檔的安裝使用方法。而是某些舊社會的博客。那么很可能你就這樣中獎了。
正確的安裝姿勢應該是這樣的(以 chrome + python + selenium 為例):
1. 打開 https://chromedriver.storage.googleapis.com/index.html
2. 找到最新版本(備注:2.30代表的版本大於2.9.此處2.9相當於2.09.不得不吐槽一下這個版本號設定)
3. 下載對應版本(備注:windows平台下。沒有64位exe插件。但是32位的可以兼容64位)
4. 確認已安裝的python版本(大於selenium標注的版本。一般而言最新版是向下兼容3.x的版本的。)
5. 自己下載selenium包 或者使用 pip install selenium 命令解決問題
至此。安裝已經完成(感覺比當年用的時候要更快)
接下來是使用的方法:
A. 示例代碼
B. 內容說明
1. 第八行必須傳入executable的值。(即將截圖中代碼第八行改為: driver = webdriver.Chrome(executable).)
此處由於早先的selenium的設計模式。之前selenium是通過環境變量設置來識別執行路徑的。
現在源碼的相關部分已經更改。因此使用selenium也無需配置環境變量了。
2. 第十行必須使用完整的url鏈接(url包含前綴http://或https://)。否則無法解析域名
C. 針對B1的附加說明
找出這個問題。首先看報錯內容(不傳遞絕對路徑,即driver = webdriver.Chrome()):
然后查看源碼。可以發現。構造方法(def __init__)中。只有executable是沒有默認值的。因此必須在使用webdriver.Chrome的時候傳遞路徑以初始化該變量。否則報錯。
這樣做的好處就是。在使用selenium的時候,多個瀏覽器再也不用分別配置環境變量了。把所有的驅動程序放在項目文件目錄中。只需要在啟動的時候設定指向位置即可
當然。也可以改動源碼。給這個變量一個default值。因此其他瀏覽器的使用就不多加說明了。
最后。用driver來做聲明變量其實並不是特別好的設計模式。如果selenium要做自動化的話,腳本必須封裝為函數
調用則使用類似unittest框架的東西來做,這樣的話,內部變量基本上會使用如下寫法
# 初始化函數
def setUp(self):
self.browser = webdriver.Chorme(executable)
# 執行腳本
def test_case1(self):
self.browser.get('http://www.baidu.com')
......
這樣做,就可以保證環境和數據配置。並且可以使用很多現有的方法。是比較推薦的寫法。
如果有進階的興趣。推薦去看《python web開發測試驅動方法》。對於初學者理解功能測試模式還是很有幫助的。