selenium使用记录(一)

news/2024/7/2 4:31:12/文章来源:https://www.cnblogs.com/MyRecords/p/18269641

一 前言

环境: window 10
python3.10 selenium 4.21

随便记录一些容易犯错或理解错误或比较有意思的一些点

二 内容

1 关于驱动webdiver的下载使用

以前通常是,根据浏览器的版本下载好合适的浏览器驱动到本地电脑,然后使用的时候配置好驱动路径
如下:

chromedriver_path = r"D:\xxxxxxxxx"  # 这里替换为你下载的webdriver的路径
service = Service(chromedriver_path)
driver = webdriver.Chrome(service=service, options=chrome_options)

前端时间发现这个版本有个方法能自动下载配置合适的驱动,再也不用手动去下载驱动了,
之前隔一段时间去运行代码都报错,原因就是浏览器更新了,要重新下载合适的驱动

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)

具体是从哪一个版本开始可以这样使用没去细究,以前3的时候好像没这种用法
这种方法启动浏览器之前的等待时间好像比手动下载的方法时间要长一丢丢

2 关于异常的处理

try:xxxxxelement = driver.find_element(xxxxx)
except Exception as e:xxxxx正式的业务处理逻辑xxx

如上一段伪代码,想在找不到某个元素的时候写处理逻辑,但Exception捕获的范围太大了,它不仅能捕获元素未找到的异常,还能捕获很多其他的代码异常,如果是其它异常,这就不是我们想要的了,因此最好是明确捕获元素未找到的一场NoSuchElementException

try:xxxxxelement = driver.find_element(xxxxx)
except NoSuchElementException as e:xxxxx正式的业务处理逻辑xxx

3 关于页面元素不可点击

判断一个元素是否可点击,有种常用的方法是

#如果没有抛出异常,说明元素可点击
element = wait.until(EC.element_to_be_clickable((By.xx, xxxxx)))

但有时候,这个方法也不管用,如在豆瓣读书上 点击下一页的时候
image

image

不断点击[后页]按钮,来跳转到新的一页,当其不可点击时,

try:wait2 = WebDriverWait(driver, 1)page_wait = wait2.until(EC.element_to_be_clickable((By.XPATH, '//*[@class="next"]')))logger.info(f'page: {page_wait}')next_button = driver.find_element(By.XPATH, '//*[@class="next"]')next_button.click()
except Exception as e:logger.info(f"点击下一页出现异常")raise 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/731856.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google X开源抓取机械臂,无需人工标注就能一眼找到目标零件

机械臂常见,但你见过这么聪明的吗? 从工作台上一眼找到合适的螺母、稳稳拿住。 再送到目标螺杆上,整个动作一气呵成: 即使是相似度极高的两个部件,也能准确区分并“揪”出正确的那个: 要知道,平时我们自己做实验、或是拼装没见过的机械零件时,面对各个相似的零件都可…

生物力学考前补天 (╥_╥)

简答题 能量货币 (1) 细胞中的“能量货币”有哪几种主要形式?最常见的“能量货币”是什么?磷酸根所携带的能量(类似的有鸟苷三磷酸GTP等)。 NADH(或其类似物NADPH):可转移的高能电子形式携带的还原电位(“氧化自己,还原别人”;转移两个电子来还原被氧化的有机化合物;失去…

cython 笔记

数据类型# bool 类型 // bool_type_ptactice.pyx cdef bint a = 123 # 非0 为 真 , 0 为假 cdef bint b = -123 cdef bint c = 0 py_a = a # cdef 定义的内容没法直接在python中直接引用 py_b = b py_c = c// main.py import pyximport pyximport.install(language_level=3…

扫描版PDF目录制作指南

目前网上找到的扫描版的电子书往往没有目录,这使得阅读变得非常困难。本文总结我的经验,介绍快速制作扫描版 PDF 目录的方法,以便更轻松地阅读扫描版电子书。 本文首先介绍手动制作目录的方法,之后介绍如何利用 AI 帮助制作目录,接下来介绍了没有目录页的扫描版 PDF 的解决…

Ros - moveit - 三位模型导出URDF

1. 以UR3机器人为例, 先设计solidwork模型, 下载并安装sw_urdf_expoter 插件: 2. 下载机器人模型文件,加载进solidworks:插入基准轴: 一共6个旋转轴: 设置好旋转轴后,接下来,导出URDF文件: 配置URDF:将link加进来: 点击“Preview and Export”进行自动计算旋转轴…

为什么useEffect的第一个参数不能用异步函数

最近面试遇到了这个问题两次了,面试官: useEffect第一个参数可不可以用异步函数? 我们先来看看用了异步函数会报什么错报这个错的原因是因为async 会返回一个promise函数,而clean()函数不能是异步的 。 先来看看clean()函数的执行时机: 首次渲染不会进行清理,会在下一次渲…

离散数学重点整理

集合论 \(x \in A\): \(x\) 是 \(A\) 的一个元素 \(x \notin A\) (\(x\) 不属于 \(A\)): \(x\) 不是 \(A\) 的一个元素 \[A \subseteq B \Leftrightarrow \forall x(x \in A \rightarrow x \in B) \]\[A \subset B \Leftrightarrow A \subseteq B \wedge A \neq B \]\[…

EXQX-5.0.26 登录控制台

前言全局说明EXQX-5.0.26 登录控制台。一、说明 因 win 和 lin 控制台使用没有太大差异,故放一篇二、访问 2.1 本机访问 http://localhost:18083 或 http://127.0.0.1:18083 2.2 局域网访问 在网卡上查看你局域网IP http://局域网IP:18083/ 登录页:2.3 登录 默认,用户名:ad…

电工电子学复习总结

电路和电路元件 晶体管晶体管简化的小信号模型\[r_{\mathrm{be}}=r_{\mathrm{b}}+(\beta+1) \frac{26}{\{I_{\mathrm{E}}\}_{\mathrm{mA}}} \]其中,\(r_{\mathrm{b}}\)为基区电阻。当\(I_{E} < 5 \text{mA}\),\(r_{\mathrm{b}}=200 \Omega\)。 电路分析基础 电路定律 基尔…

EXQX-5.0.26服务Linux上安装使用

前言全局说明一、说明二、 2.1 文件名:2.2 文件名:三、 3.1 文件名:3.2 文件名:四、 4.1 文件名:4.2 文件名:免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。图片尺寸红色文字:红色文字 浅红色文字:浅红色文字 深红色文字:深红色文字 浅…

一文了解自定义表单系统开源的多个优势

如果想了解自定义表单系统开源的优势特点,可以从本篇文章的介绍中得到想要的答案。降本、提质、增效,是当前很多企业都想实现的目的。什么样的软件可以助力企业创造价值?低代码技术平台是近些年得到了很多客户喜爱的平台产品,因为它能帮助大家减少编程代码的撰写,能轻松助…

软件测试策略

互联网产品的测试策略: 重量级API测试,轻量级GUI测试,轻量级单元测试 以中间层的 API 测试为中点做全面测试 轻量级的 GUI 测试:只覆盖最核心直接影响主营业务的 E2E 场景,利用探索式测试思维,以人工测试的方式发现尽可能多的潜在问题 单元测试:只对那些相对稳定且核心的…

EXQX-5.0.26服务Windows上安装使用

前言全局说明一、说明 在 Windows 系统中建议仅将 EMQX 用于开发测试,推荐使用 Docker 安装。二、官方介绍 https://docs.emqx.com/zh/emqx/v5.0/deploy/install-windows.html三、解压、安装、启动 3.1解压 下载 emqx-5.0.26-windows-amd64.zip,并解压缩。 https://www.emqx.…

JDK的环境配置(超详细安装教程)_jdk环境配置

jdk17下载与安装教程,jdk17下载安装教程,安装jdk17并配置环境变量,jdk17安装教程详细,jdk17安装教程及环境变量配置本文讲解的是jdk17下载与安装教程,jdk17安装教程及环境变量配置,jdk17下载安装教程。JDK17 发布,与之前 LTS 版本的 JDK 8 和 JDK 11 相比,JDK17 的性能提升尤…

Could not resolve org.jetbrains.intellij.plugins:gradle-intellij-plugin

构建 idea 插件报错: A problem occurred configuring root project cola-tools. > Could not resolve all files for configuration :classpath.> Could not resolve org.jetbrains.intellij.plugins:gradle-intellij-plugin:1.16.1.Required by:project : > org.je…

dense并行训练1-流水线并行

并行训练-流水线 简述 并行训练主要有三种策略:数据并行训练加速比最高,但要求每个设备上都备份一份模型,显存占用比较高,但缺点是通信量大。 张量并行,通信量比较高,适合在机器内做模型并行。 流水线并行,训练设备容易出现空闲状态,加速效率没有DP高;但能减少通信边界…

【Creo】关于Creo一换网络就报错许可证丢失问题解决方案

依照我的个人理解,Creo只要一更换网络,则其许可证里面的网卡参数和现在的网络就对不上了,所以就会出现报错,并且有可能是报错代码(-9),提示许可证激活有问题。我的解决方案如下:1、找到之前安装的时候生成许可证时候用的文件:FillLicense.bat,右键管理员身份运行 这…

CREO 沟槽加工刀路编程

直接参考这个视频:creo沟槽加工_哔哩哔哩_bilibili 不管是内部沟槽还是外部沟槽都可以用这个视频提供的方法编程。 用轮廓铣削的方法编程。一定要选择 切削-进入-延宕 切削-退出-延宕,这两个参数分别选择引入、引出。同时记得填写引导半径和进刀角,出刀角!

机械臂 - URDF建模

机器人建模文件样例: 6轴机器人建模<?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="test"><xacro:property name="length" value="0.6"/><xacro:property name…

关闭Windows中每天都会自启的Adobe更新程序

该方法主要适用于电脑上没安装XXX安全卫士、xx电脑管家的用户。装有这些软件的用户,估计不会碰到这个问题。如果还是碰到了,找到开机优化选项,在界面上方的工具栏上找到计划任务,点击进去后找到Adobe相关的禁用就行。 下面是具体方法: 1.打开控制面板->系统和安全,找到…