「selenium实战专栏」将记录selenium实战(Python版)过程,以及各类问题的解决方案。
大致规划如下:
本章将从selenium环境安装开始,感兴趣的伙伴可以跟着一起来动手哦~
Python环境没有的,请自行安装,本教程采用的是python 3.10.6。
首先在selenium官网选择对应开发语言的Stable包版本,根据提示进行安装,这里拿Python举例。
本地新增一个Python项目,然后通过命令pip install selenium
安装最新的selenium。这里安装是4.0.5
版本(如果要安装其他版本,可以通过命令pip install selenium==版本号
安装指定版本)。安装完成后就可以操练起来啦。
首先来尝试官方提供的小demo,这个demo是启动一个Chrome浏览器,然后输入网址http://selenium.dev
,最后关闭浏览器退出。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://selenium.dev")
driver.quit()
毫无疑问,运行起来报错了(别着急,与其直接说答案,如何去定位解决问题才是更重要的),报错如下图所示:
报错的意思是在系统变量PATH中找不到chromedirver。这就涉及到selenium的原理了,selenium是通过浏览器提供的webdriver去操作浏览器的,如果我们要使用Chrome浏览器就需要先下载Chrome提供的driver,其他浏览器也是如此。
selenium官方文档提供了各种浏览器的webdriver下载地址,大家可以根据自己使用的浏览器进行下载(注意要下载跟浏览器版本相同的驱动,避免不同版本的兼容问题)。
下载完成后解压就可以得到chromedriver的可执行文件了,selenium官方文档中介绍了下面三种方式:
将chromedriver执行文件的地址配置到PATH环境变量中
在代码中指定chromedriver执行文件的地址
使用DriverManager
自动管理浏览器依赖
第三种,对于Chrome版本号存在小版本号的时候可能会存在找不到包的情况,如下图这种报错,它的原理就是根据电脑上安装的浏览器版本号下载对应的Chromedriver压缩包到本地,但是对版本号的识别还是有问题的,暂时不建议使用,下章给大家介绍如何自己写python脚本来完成这套逻辑。
这里使用第二种方案,将上面的demo代码改成下面这样(将executable_path的地址更换为自己电脑上chromedriver可执行文件的地址):
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path='/Users/huyanping/Softwares/chromedriver')
driver = webdriver.Chrome(service=service)
driver.get("http://selenium.dev")
driver.quit()