
selenium中如何高亮显示定位元素
初始化浏览器驱动 打开目标网页 找到目标元素 调用 执行后续测试操作
发布日期:2021-05-14 09:14:58
浏览次数:48
分类:精选文章
本文共 3019 字,大约阅读时间需要 10 分钟。
UI自动化测试中的元素高亮处理方案
在UI自动化测试中,为了让测试人员更直观地观察测试过程,可以通过对元素进行高亮处理。这种方法能够有效提升测试效率。
一、实现思路
我们可以通过Selenium的JavaScript执行来实现元素的高亮处理。这种方法具有很强的通用性,可以灵活地处理各种元素属性。具体来说,就是调用JavaScript方法,对找到指定元素后,给其添加样式。
二、代码实现
from selenium import webdriverfrom time import sleepdef find(driver, by, loc): '''by代表定位方式,loc代表元素定位表达式''' STYLE = "background: yellow; border: 2px solid red;" # 高亮的样式 element = driver.find_element(by, loc) driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element, STYLE) return elementdef find(self, by, expr): WebDriverWait(driver=self.dr, timeout=10).until(expected_conditions.visibility_of_element_located((by, expr))) element = self.dr.find_element(by, expr) js = """arguments[0].style.border="2px solid red";""" self.dr.execute_script(js, element) return elementdef find_js(self, value, by, index=0): if by is 'class': WebDriverWait(self.dr, timeout=10).until( expected_conditions.visibility_of_element_located((By.CLASS_NAME, value))) js = "return document.getElementsByClassName('{}')[{}]".format(value, index) el = self.dr.execute_script(js) js = """arguments[0].style.border="2px solid red";""" self.dr.execute_script(js, el) return el if by is 'id': WebDriverWait(self.dr, timeout=10).until( expected_conditions.visibility_of_element_located((By.ID, value))) js = "return document.getElementsById('{}')[{}]".format(value, index) el = self.dr.execute_script(js) js = """arguments[0].style.border="2px solid red";""" self.dr.execute_script(js, el) return el if by is 'tag': WebDriverWait(self.dr, timeout=10).until( expected_conditions.visibility_of_element_located((By.TAG_NAME, value))) js = "return document.getElementsByTagName('{}')[{}]".format(value, index) el = self.dr.execute_script(js) js = """arguments[0].style.border="2px solid red";""" self.dr.execute_script(js, el) return el if by is 'css': WebDriverWait(self.dr, timeout=15, poll_frequency=1).until( expected_conditions.visibility_of_element_located((By.CSS_SELECTOR, value))) js = "return document.querySelectorAll('{}')[{}]".format(value, index) el = self.dr.execute_script(js) js = """arguments[0].style.border="2px solid red";""" self.dr.execute_script(js, el) return eldef find_all(self, by, expr): elements = [] element_list = self.dr.find_elements(by, expr) for element in element_list: js = """arguments[0].style.border="2px solid red";""" self.dr.execute_script(js, element) elements.append(element) return elements
三、使用方法
在实际测试中,可以按照以下步骤实现元素高亮:
execute_script
对元素设置高亮样式四、效果图
(图中展示了元素高亮后的界面情况)
五、核心代码解析
通过上述代码实现,可以看到关键点如下:
- 使用
execute_script
方法调用JavaScript - 动态设置元素的样式属性
- 根据不同的定位方式(如class, id等)来实现灵活操作
这种方法既简单易实现,又能够满足多种定位需求,是UI自动化测试中常用的解决方案之一。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月29日 13时55分41秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mac M1 安装 TensorFlow 使用Python3.8
2025-04-11
Mac M1 芯片不兼容node-sass
2025-04-11
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
2025-04-11
mac m1导入cv2报错 正确的安装OpenCV的方法
2025-04-11
Mac mini7.1 2014年末 安装单windows 10系统
2025-04-11
Mac mini7.1 2014年末系统损坏开机跳出闪动带问候文件夹
2025-04-11
mac node版本管理
2025-04-11
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
2025-04-11
Mac OS X 上 Python 的框架和非框架构建之间的差异
2025-04-11
Mac OS X下Sublime Text (V2.0.1)破解
2025-04-11
Mac OS X汇编语言常识
2025-04-11
Mac os 如何安装SVN
2025-04-11
Mac OS下错误The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path的解决方法
2025-04-11
Mac os如何安装绿盾客户端
2025-04-11
mac xmind 激活
2025-04-11
Mac 下 Python+Selenium 自动上传西瓜视频
2025-04-11
mac 下 react Native ios环境搭建
2025-04-11
Mac 下使用sourcetree操作git教程
2025-04-11