最近在學(xué)習(xí)python祠饺,在使用selenium做自動(dòng)化時(shí)候遇上各種坑垫蛆,有很多是自己不小心弄出來的遇革,下面記錄下自己學(xué)習(xí)中遇上的坑:
用pip安裝selenium時(shí)候一直報(bào)錯(cuò)晨仑,提示沒有權(quán)限塞祈,即使我用了sudo也依然安裝失敗
后來找了下原因發(fā)現(xiàn)因?yàn)?Mac OS X 10.11后默認(rèn)開啟了 SIP(System Integrity Protection)功能鞍爱,一些系統(tǒng)文件就算使用「sudo」大法也無法搞定涕蜂,比如安裝 IPython析校,selenium礁哄,在 SIP “保護(hù)”下都不能完美安裝使用长酗。
解決方法是:
重啟電腦,按住 Command + R 鍵桐绒,進(jìn)入恢復(fù)模式的操作面板夺脾,然后打開 實(shí)用工具-「終端」,輸入:
csrutil disable
再次重啟電腦茉继,正常進(jìn)入咧叭,在終端輸入:
csrutil status
會(huì)發(fā)現(xiàn)SIP 功能就關(guān)閉了
這時(shí)候就在重新安裝:
sudo pip install selenium
OK,完全沒問題了
由于安裝成功后本人十分高興,迫不及待上網(wǎng)找了一下selenium的基本實(shí)用方法來測試烁竭,因?yàn)樽约旱膍ac機(jī)只有safari瀏覽器就寫一下代碼:
from selenium import webdriver
class test():
def __init__(self):
self._browser = webdriver.Safari()
self._browser.get("http://www.baidu.com")
def get_title(self):
print self._browser.title
self._browser.quit() #最開始沒寫這句菲茬,以為不會(huì)有影響導(dǎo)致我跌進(jìn)下面的坑
t = test()
t.get_title()
運(yùn)行會(huì)提示 :
selenium.common.exceptions.WebDriverException: Message: Could not create a session: You must enable the 'Allow Remote Automation' option in Safari's Develop menu to control Safari via WebDriver.
這是需要我們開啟safari瀏覽器的遠(yuǎn)程自動(dòng)化功能:
第一次會(huì)運(yùn)行完全沒問題,但是當(dāng)你重新運(yùn)行的時(shí)候派撕,如果你沒寫
self._browser.quit()或self._browser.close()就會(huì)出現(xiàn)下面的錯(cuò)誤:
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/safaridriver unexpectedly exited. Status code was: 1
無論我關(guān)閉瀏覽器還是重啟都提示這個(gè)錯(cuò)婉弹,實(shí)在讓人抓雞,最后通過活動(dòng)監(jiān)視器查看發(fā)現(xiàn):
殺掉這兩個(gè) 代碼中加回
self._browser.quit()就解決了
特此記錄下自己學(xué)習(xí)過程中遇到的問題