持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
Selenium实战案例可以查看这篇文章Selenium+Python刷B站视频播放量
一、环境搭建
安装Selenium库
- 安装命令如下:
下载chromedriver版本,[点击查看下载网站]()
- 下载与chrome浏览器版本对应的chromedriver版本,点击查看下载网站
二、Python-Selenium实操
导入Webdriver模块
创建chrome浏览器对象
查找需要操作的元素
options = webdriver.ChromeOptions()
对元素执行相应操作(单击)
释放资源
- webdriver是服务端代理,当自动化结束时,需要记得释放资源
三、Selenium三大等待
等待的作用
等待是为了提高自动化运行的成功率,在指定等待的地方,进行等待,以便于系统响应,再继续进行
强制等待
- 当代码运行带强制等待这一行是,无论出于什么情况,都强制性等待指定时间
- 强制等待方法的调用如下
隐式等待
- 隐藏起来的等待,一次设置,终生有效,针对当前的WebDriver对象进行等待时长的设置
- 对webdriver对象设置全局等待,每一次操作,如遇到页面加载,则默认进入隐式等待
- 隐式等待设置如下(设置了最长为10s的等待时间):
- 如果设置了隐式等待,当页面还在刷新,即为下图状态,或遇到元素无法找到时,会进入隐式等待
- 如果等待超过了最长时间,就继续运行之后的代码(遇到元素无法找到也不会报错)
显式等待
- 光明正大的等待,专门用于等待指定的元素对象
- 设置显式等待方法如下,如果超时后未找到指定元素,会抛出指定异常,
message
为异常的信息
# 导入等待模块
from selenium.webdriver.support.wait import WebDriverWait
# 设置显示等待
WebDriverWait(driver,10,0.5).until(lambda el:driver.find_element(By.XPATH,**'//*[@id="1"]/h3/a'**),message=**'元素未找到'**)
- 当多个等待被一同调用时,系统的等待时间取决于最长的时间