Mac上selenium安装教程+报错解决
前言
最近在学习自动化测试,故重新捡起之前爬虫时候的selenium
。本来以为正常pip
就可以完事,却在安装的路上踩了许多坑,也参考了一些资料,并对其中的一些内容做一些更新。
Selenium
安装过程
软硬件配置
系统:macOS Ventura
Python:3.8.5
selenium:4.5.0
直接在terminal
中使用pip
安装
1 | pip install selenium |
安装后打开pycharm美美写了一个test.py来测试selenium是否安装成功,第一步导入库的时候并没有报错,心里雀跃欢呼,此时已认为“如此简单之事,不值一提,还有人写安装教程,简直是水博客”。
但在第三行代码时候我吃了瘪,开始有了以下内容的报错:
1 | from selenium import webdriver |
raise WebDriverException(selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. Please see https://chromedriver.chromium.org/home
原来是selenium3之后都需要安装浏览器驱动,这时候我虽然觉得麻烦,但仍然是自信地点开网址去下载驱动了。
安装ChromeDriver
查看浏览器版本(本文以Chrome
为例)
1 | chrome://version/ |
查看浏览器的版本,再下载对应的驱动,不然下载下来后仍无法使用。
可以看到我的版本是107开头的,故点击后面的链接直接下载即可。下载后解压,这时候我看的一个教程是建议放在应用程序的Chrome包下,然后在~/.bash_profile
中export path。在我尝试了至少三遍后,我放弃了,因为这一步的内核其实只是将chromedriver的path导入而已,那在那个path都是可以的呀,只要这个path已经被export了。
于是我选择将解压后的 chromedriver
放在了/usr/local/bin
下。
美美运行剩下的程序,终于跳出了浏览器。
然后下面程序第二行又停住了。
1 | driver.get("http://www.baidu.com") |
开始报错:
selenium ‘WebDriver‘ object has no attribute ‘find_element_by_id‘
继续发扬我有事没事搜索一下的优良传统,在该教程中找到了答案。
导入包:
1 | from selenium.webdriver.common.by import By # 导入By |
最终美美跑出了第一个自动化的程序。
正确(修改后)的完整代码如下:
1 | from selenium import webdriver |