Selenium番外篇文本查找、元素高亮、截图、无头运行

Selenium根据文本查找元素


```python
def find_element_with_text(self, loc, attribute, text):try:WebDriverWait(self.driver, 5).until(EC.all_of(EC.text_to_be_present_in_element_attribute(loc, attribute, text)))element = self.driver.find_element(*loc)if isinstance(element, NoneType):logging.error("%s 页面中未能找到 %s 元素" % (self, loc))else:return elementexcept Exception as e:self.save_picture('出现异常')logging.info(e)else:return element

## Selenium 截图​```python
def save_picture(self, pic_name):try:projectPath = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))pic_dir = projectPath + "\\pictures\\" + time.strftime('%Y-%m-%d')# logging.info('图片文件夹路径为:'+pic_dir)if os.path.exists(pic_dir):# logging.info('图片文件夹已存在路径为:' + pic_dir)passelse:# logging.info('图片文件夹路径不存在创建文件夹' )os.makedirs(pic_dir)pic_name = pic_dir + '\\' + pic_name + time.strftime('%Y-%m-%d %H_%M_%S') + '.png'# logging.info('图片文件路径为:'+pic_name)self.driver.get_screenshot_as_file(pic_name)allure.attach.file(pic_name, attachment_type=allure.attachment_type.PNG)except Exception as e:traceback.print_stack()logging.info(e)else:logging.info('截图路径:%s' % pic_name)return pic_name

selenium高亮元素

def set_high_light_elment(self, element):"""高亮web元素。Args:element:WebElement:web元素"""element_style=element.get_attribute('style')self.mark_dom_text(element_style,200,200)script = '''arguments[0].setAttribute('style','background: #e0e7c8; border:2px solid red;');{}'''.format(element_style)logging.info('用js设置定位元素高亮...')# 调用js将传入参数的页面元素对象的背景颜色和边框颜色分别设定为黄色和红色# self.driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element, "background: yellow; border:2px solid red;")try:# 方案一# self.driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element, "background: yellow; border:2px solid red;{}".format(element_style))# 方案二self.driver.execute_script(script,element)except Exception as e:traceback.print_stack()traceback.print_exception(e)

​Selenium 无头模式运行

def test_chrome_options_headless(self):

chrome_options = webdriver.ChromeOptions()
# 无头模式
# chrome_options.add_argument("--headless")
# 设置窗口大小
# chrome_options.add_argument("--window-size=800,600")
# 窗口最大化
chrome_options.add_argument("--start-maximized")
# 设置用户数据
chrome_options.add_argument("user-data-dir=/path/to/your/custom/profile")driver = webdriver.Chrome(options=chrome_options)driver.get('https://www.baidu.com')
time.sleep(5)
driver.find_element(By.XPATH, '''//*[@id="kw"]''').send_keys('Chrome')
driver.find_element(By.XPATH, '''//*[@id="su"]''').click()
assert 'Chrome' in driver.page_source

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

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

相关文章

C++青少年简明教程:break语句、continue语句

C青少年简明教程:break语句、continue语句 break语句 只能用在switch语句和循环语句(for循环、while循环和do-while循环)中。作用:跳出switch语句或提前终止循环。 break语句的基本语法如下: break; break语句的示例…

Nutanix在.NEXT大会宣布AI战略升级:GPT-in-a-Box 2.0集成NVIDIA,强化企业级AI应用支持

Nutanix在巴塞罗那举行的.NEXT大会上宣布了一系列新动向,旨在借助与思科的合作、Broadcom收购VMware、生成式人工智能(GenAI)的兴起、容器化技术、PostgreSQL数据库的广泛应用以及绿色能源倡议,进一步扩大其在人工智能领域的影响力…

macbook配置前端环境:深度解析与实战指南

macbook配置前端环境:深度解析与实战指南 在数字时代的浪潮中,前端开发已成为构建互动、生动且富有吸引力的用户界面的关键。而MacBook,以其卓越的性能和稳定的系统,成为前端开发者们的首选工具。然而,对于初学者或新…

C# WinForm —— 26 ImageList 介绍

1. 简介 图片集合,用于存储图像的资源,并在关联控件中显示出来 可以通过 索引、键名 访问每张图片 没有事件 2. 属性 属性解释(Name)控件ID,在代码里引用的时候会用到,一般以 imgList 开头ClolorDepth用于呈现图像的颜色数,默…

函数:计算数组的元素和

一、计算数组的元素和 参数传递给函数时,实际上只有数组的首地址作为指针传递给了函数。 在函数定义中的int a[ ]等价于int *a。在只有地址信息的情况下,是无法知道数组里有多少个元素的,因此在计算数组中的元素和时,要加一个参…

jetson nano onnxruntime 安装

安装说明: onnxruntime 依赖cuda、cudnn版本,可onnxruntime查找对应关系。但可能会出现jetpack中的cuda和cudnn的版本无法查找到对应版本的onnxruntime的问题。 解决方法: 通过Jetson Zoo下载相应的whl包直接安装。

探索JavaScript函数---基础篇

目录 函数 声明和调用 声明(定义) 调用 参数 形参和实参 形参(Formal Arguments) 实参(Actual Arguments) 形参与实参的关系 返回值 作用域 全局作用域 局部作用域 匿名函数 函数表达式 立…

Linux权限提升二

#应用场景: 获取到Web权限或普通用户在Linux服务器上时进行的SUID&SUDO提权 SUID (Set owner User ID up on execution)是给予文件的一个特殊类型的文件权限。在Linux/Unix中,当一个程序运行的时候,程序将从登录用户处继承权限。SUID被定…

海康 面阵相机命名规则

海康 面阵相机命名规则 https://www.v-club.com/vCollage/vCollageDetail/516?subjectIdRMse6nPiyo

C语言牛客网题目--井字棋代码详解

井字棋 KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。 输入描述: 三行三列的字符元素,代表棋盘状态&…

【JS重点知识02】栈、堆与数据类型 关系

一:栈堆空间分配区别: 1 栈:由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈; 简单数据类型存放在栈中 2 堆:存储复杂数据类型(对象),…

【JMeter接口自动化】第3讲 Jmeter语言及外观配置

Jmeter语言配置 方法一:暂时生效,下次打开JMeter还会恢复默认配置 Jmeter安装后,默认语言是英文,可以在“选项”——“选择语音”中更改 方法二,修改配置文件,永久生效 修改jmeter.properties文件 Jmete…

【详细讲解版】史上最全transformer面试题

史上最全transformer面试题答案 1.Transformer为何使用多头注意力机制?(为什么不使用一个头)2.Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?3.Transformer计算attention的时候为…

20240601在Toybrick的TB-RK3588开发板上跑IPC的SDK并确认eth0

20240601在Toybrick的TB-RK3588开发板上跑IPC的SDK并确认eth0 2024/6/1 20:06 ADB的详细LOG: Microsoft Windows [版本 10.0.22621.3296] (c) Microsoft Corporation。保留所有权利。 C:\Users\QQ>adb shell adb server version (40) doesnt match this client …

全国产飞腾模块麒麟信安操作系统安全漏洞

1、背景介绍 目前在全国产飞腾模块上部署了麒麟信安操作系统,经第三方机构检测存在以下漏洞 操作系统版本为 内核版本为 openssh版本为 2、openssh CBC模式漏洞解决 首先查看ssh加密信息 nmap --script "ssh2*" 127.0.0.1 | grep -i cbc 可以通过修改/…

STL用法总结

文章目录 vector构造常用函数遍历适用情形注意事项使用迭代器删除可能会出现的错误 Set & MultiSet(不能用sort,会自动排序)构造常用函数删除,查找遍历 unordered_set(不排序集合),unordered_multiset Map & M…

spring boot 3.x版本 引入 swagger2启动时报错

一,问题 Spring Boot 3.x版本的项目里,准备引入Swagger2作为接口文档,但是项目启动报错: java.lang.TypeNotPresentException: Type javax.servlet.http.HttpServletRequest not present at java.base/sun.reflect.generics.…

儿童节礼物-你能满足孩子们吗

题目如下: 儿童节到了,幼儿园里有N个小朋友,每个小朋友都希望得到一份礼物。幼儿园的老师准备了M份不同的礼物,每份礼物都有一个编号,从1到M。老师希望每个小朋友都能得到一份礼物,但是每个小朋友对礼物的…

Nginx(openresty) 开启gzip压缩功能 提高web网站传输速度

1 开启nginx gzip压缩后,网页的图片,css、js等静态资源的大小会减少,节约带宽,提高传输效率,给用户快的体验,给用户更好的体验. 2 安装 #centos 8.5 yum install gzip 3 配置 #建议统一配置在http段 vim /usr/loca…

Python语言云:探索Python在云计算领域的无限可能

Python语言云:探索Python在云计算领域的无限可能 随着云计算技术的迅猛发展,Python作为一种强大且易用的编程语言,在云计算领域展现出了其独特的魅力和无限可能。本文将从四个方面、五个方面、六个方面和七个方面,深入剖析Python…