在windows下運行webdriver時,沒記得很復雜,可是使用mac真是費了一番周折。
問題一:
未安裝chrome驅動時,使用webdriver調chrome,並使用get方法傳url參數時會報錯;
TypeError: get() missing 1 required positional argument: 'url'
因此需要安裝相應的瀏覽器驅動。
方法如下:
1.下載chrome瀏覽器驅動for mac
網上找到的下載口:chromedriver_mac64 (2.24版本)
谷歌官網:https://chromedriver.storage.googleapis.com/2.35/chromedriver_mac64.zip (2.35版本)--需要翻牆
2.把上述驅動解壓,拷貝到:usr/local/bin 。並不是usr/bin,因為沒有系統管理員權限,拷貝到usr/bin下,很難成功,我嘗試直接粘貼,用命令拷貝等,都不行。最后發現拷貝到:usr/local/bin,就可以用了。簡單可行。
3.在pycharm中運行以下代碼,檢查是否可用。
from selenium import webdriver
import time
wd = webdriver.Chrome()
wd.get("https://www.baidu.com") # 打開百度瀏覽器
wd.find_element_by_id("kw").send_keys("selenium") # 定位輸入框並輸入關鍵字
wd.find_element_by_id("su").click() #點擊[百度一下]搜索
time.sleep(3) #等待3秒
wd.quit() #關閉瀏覽器
問題二:
一開始安裝的是2.24版本的驅動(我的chrome是63的),運行百度沒問題,但是運行公司需測試的網站時有以下報錯:
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot determine loading status from unknown error: missing or invalid 'entry.level' (Session info: chrome=64.0.3282.140) (Driver info: chromedriver=2.24.417412 (ac882d3ce7c0d99292439bf3405780058fcca0a6),platform=Mac OS X 10.12.0 x86_64)
原因:
是由於chromedriver與chrome版本不兼容。
解決方法:
1.終端中輸入:chromedriver -v,查看chromedriver版本。
2.到chromedriver官網下載最新的chromedriver驅動:
https://sites.google.com/a/chromium.org/chromedriver/(需要翻牆),下載到本地,解壓,拷貝到:usr/local/bin。官網中會給大家說明每個版本的chromedriver對應的chrome版本。
3.重復第一步的操作,查看版本是否是最新下載的版本。