Mac 下 python selenium权限问题

来源:互联网 发布:php reflection 编辑:程序博客网 时间:2024/06/06 14:11

python:学习selenium遇到的坑(原文标题)


转自:http://www.jianshu.com/p/f971b9a35333

--------------------------------------------------------------------------------

最近在学习python,在使用selenium做自动化时候遇上各种坑,有很多是自己不小心弄出来的,下面记录下自己学习中遇上的坑:

用pip安装selenium时候一直报错,提示没有权限,即使我用了sudo也依然安装失败
后来找了下原因发现因为 Mac OS X 10.11后默认开启了 SIP(System Integrity Protection)功能,一些系统文件就算使用「sudo」大法也无法搞定,比如安装 IPython,selenium,在 SIP “保护”下都不能完美安装使用。
解决方法是:
重启电脑,按住 Command + R 键,进入恢复模式的操作面板,然后打开 实用工具-「终端」,输入:

csrutil disable

再次重启电脑,正常进入,在终端输入:

csrutil status

会发现SIP 功能就关闭了
这时候就在重新安装:

sudo pip install selenium

OK,完全没问题了

由于安装成功后本人十分高兴,迫不及待上网找了一下selenium的基本实用方法来测试,因为自己的mac机只有safari浏览器就写一下代码:

from selenium import webdriverclass 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()  #最开始没写这句,以为不会有影响导致我跌进下面的坑t = test()t.get_title()

运行会提示 :
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浏览器的远程自动化功能:


selenium.png

第一次会运行完全没问题,但是当你重新运行的时候,如果你没写
self._browser.quit()或self._browser.close()就会出现下面的错误:
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/safaridriver unexpectedly exited. Status code was: 1

无论我关闭浏览器还是重启都提示这个错,实在让人抓鸡,最后通过活动监视器查看发现:


QQ20170209-143050.png

杀掉这两个 代码中加回
self._browser.quit()就解决了

特此记录下自己学习过程中遇到的问题

原创粉丝点击