Mac 下配置 Python3 和 Selenium3 环境

2023-11-15

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

一、安装 selenium

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

也可以源码安装:selenium · PyPI

二、下载浏览器驱动

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

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

下载地址2:https://registry.npmmirror.com/binary.html?path=chromedriver/​​​​​​​

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

补充:

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

unknown error: call function result missing 'value' 报错也是这个版本问题导致的,可参考:python运行的unknown error: call function result missing 'value'_lxting21的博客-CSDN博客_call function result missing 'value

三、安装浏览器驱动

下载好驱动以后需要进行安装,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 目录

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

完成以上步骤验证安装是否成功,输入 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()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mac 下配置 Python3 和 Selenium3 环境 的相关文章

  • AspNet vNext 上的 Kestrel 不提供 / 下的索引页面

    我需要能够在默认网址下提供我的 index html 使用 Kestrel Web 服务器 现在我只能使用完整路径访问我的静态文件 即 index html 同样 这在 VisualStudio 上完美运行 上下文是带有 Kestrel 的
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 原生插入符位置 macos cocoa

    我希望能够使用 cocoa 或 appleScript 获取 Mac High Sierra 中任何应用程序内的全局插入符位置 我已经使用 NSEvent 来获取键盘和鼠标挂钩 但是有没有办法获取插入符位置挂钩 插入符号与鼠标位置不同 它会
  • 如何设置Python的USER_SITE;我需要吗?

    我在 OS X 10 10 只需使用 pip 维护 上安装了 Python 我的站点包位于 Library Python 2 7 site packages 苹果的封装在 System Library Frameworks Python f
  • pip 安装 MySQL-python

    我正在尝试在 Mac OS 上安装 MySQLdb for Python 当我数字pip install MySQL pythonshell 返回这样的内容 Collecting MySQL python Using cached http
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • 在 64 位 OS X 10.6 上制作胖二进制文件更喜欢 32 位的正确方法?

    假设我问用户 你想在 32 位模式还是 64 位模式下运行 他们选择 32 位 我如何向操作系统注册这一事实 我看过arch http developer apple com mac library documentation Darwin
  • 对 boost 库的依赖项没有完整路径

    我已经成功构建了动态库 依赖于使用自定义前缀构建和安装的 boost 库 b2 install prefix PREFIX 然而 当我跑步时otool L在我的库中 我得到如下输出 libboost regex dylib compatib
  • Xcode 10 存档到“其他项目”而不是“MacOS 应用程序”

    在我升级到 Xcode 10 之前 这是完美的 我的应用程序集成了 Quicklook 和 Spotlight 插件 这些插件是单独构建的 然后在构建阶段使用以下设置复制 两个复制文件 Destination Wrapper Subpath
  • 如何在 Mac 上安装 Clang 9?

    这是我 Mac 上的内容 clang version Apple LLVM version 10 0 0 clang 1000 10 44 4 Target x86 64 apple darwin17 7 0 Thread model po
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 如何在 Mac 上设置默认 shell,例如钓鱼? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不喜欢重新输入fish每次我启动终端时 我想Fish https en wikipedia org wiki Fish Unix she
  • 为具有多个目标和不同平台的项目编写 Podfile

    我正在准备一个支持 OS X 和 iOS 的 Pod 我的 pod 有一些自己的依赖项 这些依赖项在 podspec 文件中定义 因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目的依赖项 我正在使用 CocoaPods
  • VS Code 即使关闭也使用 100% CPU

    即使未打开 VS Code 也会占用 100 的 CPU 使用率 我跑了ps aux grep PID命令查看详细信息但什么也看不懂 这是输出 tawhid 27099 100 0 0 1 447352160 11856 R 7 18PM
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩
  • VLCJ 无法在 Mac 上运行 - 插件 libvlccore.5.dylib

    我正在尝试让 VLCJ 在 Mac 和 PC 上运行 它在 Windows 7 64 位 下运行良好 但当我尝试在 Mac 上运行它时 它崩溃了 我指向 VLC dylib 文件的正确目录 但收到 使用 libvlccore 5 dylib
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何在 MacBook Pro 上的 Docker 容器内运行 tkinter?

    我正在尝试运行一个使用以下命令的 python GUI 应用程序tkinter我的 MacBook Pro 上的 docker 容器内的模块 所以我安装了XQuartz https www xquartz org 并跟随本教程 https

随机推荐

  • Pytorch save_image和make_grid函数详解

    Pytorch save image和make grid函数详解 make grid用于把几个图像按照网格排列的方式绘制出来 save image用于保存图像 这两个函数的函数签名差不多 所以只说一个 def make grid tenso
  • excel python插件_再见 VBA!神器工具统一 Excel 和 Python

    大家好 我是东哥 经常给大家推荐好用的数据分析工具 也收到了铁子们的各种好评 这次也不例外 我要再推荐一个 而且是个爆款神器 Excel和Jupyter Notebok都是我每天必用的工具 而且两个工具经常协同工作 一直以来工作效率也还算不
  • 线段树模板

    线段树属于高级数据结构 本文粗略地讲解了一下线段树的模板 大家直接拿去用就好 long long ls int x return x lt lt 1 long long rs int x return x lt lt 1 1 const i
  • 电感选型计算

    转载 https www richtek com Design 20Support Technical 20Document AN053 电感之种类与其特性分析 摘要 电感器是开关转换器中非常重要的元器件 如用于储能及功率滤波器 电感器的种
  • react render中进行if判断

    在render中进行if条件判断然后加载相应的模块进行渲染方法如下 第一种 第二种
  • Spark的DataFrame和Schema详解和实战案例Demo

    1 概念介绍 Spark是一个分布式计算框架 用于处理大规模数据处理任务 在Spark中 DataFrame是一种分布式的数据集合 类似于关系型数据库中的表格 DataFrame提供了一种更高级别的抽象 允许用户以声明式的方式处理数据 而不
  • 【数据分析之道-NumPy(四)】numpy广播机制

    文章目录 专栏导读 1 广播机制 2 一维数组和二维数组的广播 3 二维数组和三维数组的广播 4 标量和数组的广播 5 形状不兼容的数组不能进行广播 专栏导读 作者简介 i阿极 CSDN Python领域新星创作者 专注于分享python领
  • 小游戏:红色警戒争霸战!

    这个是当年自己在学校里面写的小游戏 现在看看好弱智啊 第一代的代码 public struct Heros public string name public double hp public double mp public double
  • a标签下载pdf文档

    开发过程中 有时我们需要点击a标签然后可以下载pdf文档 但是结果经常是pdf文档直接就在浏览器中打开了 那么想要直接下载需要怎么实现呢 实现方式 在a标签的href中写上要下载的pdf文档的地址 加上download下载属性 最后记得让后
  • Tencent://Message/协议的实现原理 .

    Tencent Message 协议的实现原理 2008年07月17日 星期四 12 04 腾讯官方通过 Tencent Message 协议可以让QQ用户显示QQ TM的在线状态发布在互联网上 并且点击 不用加好友也可以聊天 官方链接 h
  • C语言中关键字一次说清楚!!!

    目录 一 static 1 作用 2 一些例子帮助大家更深刻的理解static的几个作用 1 修饰局部变量 2 修饰全局变量和函数 二 const 1 作用 使得变量不允许被修改 提高代码的健壮性 2 本质 给编译器看的 在编译阶段起作用
  • golang 中strconv包用法

    https blog csdn net chenbaoke article details 40318357
  • .netcore windows app启动webserver

    创建controller using Microsoft AspNetCore Mvc using Microsoft Extensions Logging using System using System Collections Gen
  • 判断input输入框的值,用到input事件,blur事件,focus事件

    需求 当输入框有字或者正在输入时 右边的圆形取消按钮才出现 否则不出现
  • 网络h

    注 所有标题带h的博客不保证准确性和正确性 写这篇博客原因是因为网络知识学了又忘 忘又学 翻来覆去 所以做个笔记 正如上文注明 此篇博客所写内容不够准确和专业 甚至不正确 只是为了便于理解记忆 概念 以太网 ethernet 双绞线 同轴线
  • Tkinter中字体大小与部件大小的关系

    我是小鱼 今天是2022年2月10日 之前用python在做扫雷游戏时 发现总是拿不准部件大小与字体之间的关系 为此 当时还特地写了一篇BLOG Tkinter中的标签 Lable 与按钮 Button 的大小问题 扫雷写完后我有时间慢慢回
  • Centos下yum安装nginx本地仓库无nginx源解决方案

    一 问题描述 在CentOS下使用yum install nginx y 命令时 出现如下错误 root docker 05 yum install nginx y 已加载插件 fastestmirror Loading mirror sp
  • Hadoop Hbase 升级

    Hadoop HDFS 与Hbase升级笔记 由于之前使用了hadoop1 0 2 hbase 使用的是hbase 0 92 1 但是一次事故导致元数据丢失 且修复元数据的类本身有BUG 所以摆在眼前的只有两条路 1 修改hbase源码重新
  • CNI Plugin 介绍

    CNI 插件包括两种类型 CNI Plugin 和 IPAM IP Address Management Plugin CNI Plugin 负责为容器配置网络资源 IPAM Plugin 负责对容器的 IP 地址进行分配和管理 IPAM
  • Mac 下配置 Python3 和 Selenium3 环境

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