Mac 下配置 Python3 和 Selenium3 环境

Selenium 是一套 Web 测试框架,Selenium2 中新增加了 Webdriver,可以用了测试 UI 层,控制浏览器执行爬虫等操作,而 chromedriver 是 Selenium 控制浏览的必要驱动。

一、安装 selenium

可以通过 pip 安装:sudo pip3 install selenium

也可以源码安装:https://pypi.python.org/pypi/selenium

二、下载浏览器驱动

selenium 的三大浏览器驱动 Chrom、Firefox、IE

下载地址:https://download.csdn.net/download/yilovexing/10480469

注意:浏览器版本要和驱动版本相对应

Mac 下配置 Python3 和 Selenium3 环境_第1张图片

补充:

V2.29  V56-58

V2.30  V57-59

V2.31  V58-60

V2.32  V59-61

V2.33  V60-62

V2.34  V61-63

V2.35  V62-64

V2.36  V63-65

V2.37+  V66+


我的 chrome 版本是 v66 的,所以驱动选择 V2.37+ 以上 V2.4

Mac 下配置 Python3 和 Selenium3 环境_第2张图片

unknown error: call function result missing 'value' 报错也是这个版本问题导致的,可参考:https://blog.csdn.net/lvxiaoting/article/details/79972431

三、安装浏览器驱动

下载好驱动以后需要进行安装,Mac 的命令都放在 /usr/bin 下,所以需要将 chromedriver 拷贝到本目录下

但是这里会有一个坑,当你拷贝时会报一个错 Operation not permitted(不允许操作),这是因为 Mac 系统启用了SIP(System Integerity Protection),导致root用户也没有修改权限。

我们可以屏蔽掉这个功能,具体做法是:

1.重启电脑

2.command + R 进入recover模式

3.点击最上方菜单使用工具,选择终端

4.运行命令csrutil disable

5.当出现successfully字样,代表关闭成功!

但是不推荐这样做,这是 Mac 的一个安全机制,是 Mac 抵御入侵的最后一道防线,所以我们变通,使用其他策略。

1. 在用户目录下新建 bin 目录

将配置文件拷贝到本目录下,然后配置环境变量即可

Mac 下配置 Python3 和 Selenium3 环境_第3张图片

完成以上步骤验证安装是否成功,输入 chromedriver -v 出现版本号即代表成功


2. 还有一个更简单的方式

cp chromedriver /usr/local/bin/

将驱动拷贝到用户目录目录下即可 /usr/local/bin/

验证安装是否成功 chromedriver -v

四、测试配置是否成功

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-


from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get('https://www.baidu.com/')
print('打开浏览器')
print(driver.title)
driver.find_element_by_id('kw').send_keys('测试')
print('关闭')
driver.quit()
print('测试完成')

五、测试启动不同的浏览器

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

from selenium import webdriver

# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 启动 FireFox 浏览器
driver = webdriver.Firefox()
# 启动 IE 浏览器
driver = webdriver.Ie()

driver.get("http://www.baidu.com")

driver.find_element_by_id("kw").send_keys("Selenium2")
driver.find_element_by_id("su").click()

driver.quit()

你可能感兴趣的:(#,Mac)