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

2024-06-01 23:52

本文主要是介绍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

这篇关于Selenium番外篇文本查找、元素高亮、截图、无头运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022453

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

如何在运行时修改serialVersionUID

优质博文:IT-BLOG-CN 问题 我正在使用第三方库连接到外部系统,一切运行正常,但突然出现序列化错误 java.io.InvalidClassException: com.essbase.api.base.EssException; local class incompatible: stream classdesc serialVersionUID = 90314637791991

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

Verybot之OpenCV应用二:霍夫变换查找圆

其实我是想通过这个程序来测试一下,OpenCV在Verybot上跑得怎么样,霍夫变换的原理就不多说了,下面是程序: #include "cv.h"#include "highgui.h"#include "stdio.h"int main(int argc, char** argv){cvNamedWindow("vedio",0);CvCapture* capture;i

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retrieval) 全文扫描 关键词

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学