Python写UI自动化--playwright(元素定位)

news2024/11/7 17:29:57

本篇详细分享playwright如何进行打断点、元素定位、填写输入框、点击等操作

目录

一、PyCharm打断点进行调试

二、浏览器开发者模式检查元素

三、通过CSS或XPath进行定位

四、输入框输入文本操作

五、点击操作

总结


一、PyCharm打断点进行调试

如图所示,我们在page.goto创建新页面并导航后打了断点,再运行debug调试

程序会在运行完page.goto("https://www.baidu.com")这句代码后暂停,我们可以看到在有头模式下会弹出谷歌浏览器导航窗口,百度界面。

二、浏览器开发者模式检查元素

在弹出的浏览器导航窗口中单机鼠标右键--选择检查

 

就会弹出浏览器的开发者界面,点击红框处我们可以设置这个界面的位置靠左靠右或者靠下

点击所标示的箭头就可以在页面中选择一个元素进行检查,比如我们选择百度输入框进行检查:

三、通过CSS或XPath进行定位

我们可以通过如上图输入框标签的属性值,如input中的 id="kw"   name="wd",去对百度输入框元素进行定位。比如我们通过CSS Selector定位,按ctrl+f会在开发者工具的顶部或者底部弹出一个搜索框,我们输入#kw,可以看到能搜到百度输入框:

也可以通过XPath定位,同上述方法在搜索框输入//input[@name='wd'],也能搜到百度搜索框且是唯一的

四、输入框输入文本操作

调试试验步骤三中的定位元素是否有效,用到playwright的两个方法:

page.locator(selector): 创建一个定位器对象,用于查找和操作页面上的元素。selector可以是CSS选择器、XPath等。

page.fill(selector, value[, options]): 在表单输入元素中填充文本。

我们回到pycharm中继续进行调试,在调试框中如下红色框按钮Evaluate Expression 评估表达式,点击红色框按钮会弹出一个Evaluate对话框,我们可以在Expression输入框中输入接下来我们希望运行的代码page.locator('//input[@name="wd"]').fill("搜索"),并点击Evaluate进行实验运行,即按上个步骤通过XPath进行定位,看到运行结果None,没有报错

此时我们再回到浏览器导航窗口,发现界面已经发生变化,搜索框中按我们预设的输入了 “搜索”二字。我们可以将page.locator('//input[@name="wd"]').fill("搜索")这句代码copy到代码主体中使用。

同样我们也可以通过CSS定位 page.locator('#kw').fill("搜索"),结果是一样的,但是建议最好使用在开发者工具搜索框搜到唯一值的方法。

五、点击操作

类似步骤四,用到playwright的模拟点击方法:

page.click(selector[, options]): 在指定的元素上模拟点击操作。

同步骤四一样,我们先在浏览器确定元素定位,再到pycharm进行调试试验代码

经过调试试验点击百度一下搜索按钮后,浏览器显示内容发生变化,同样我们将调试代码copy到代码主体中。

经过上述调试步骤,我们得到完整的代码,实现操作浏览器导航www.baidu.com,在百度搜索框输入”搜索“二字,再点击百度一下按钮进行搜索,最后关闭浏览器:

from playwright.sync_api import sync_playwright
def usage_1():
    with sync_playwright() as p:
        #启动谷歌浏览器实例
        browser = p.chromium.launch(headless=False)
        page = browser.new_page()
        page.goto("https://www.baidu.com")
        # 在搜索框中输入关键词
        page.locator('//input[@name="wd"]').fill("搜索")
        # 点击“百度一下”按钮进行搜索
        page.click("//input[@value='百度一下']")

        browser.close()

usage_1()

总结

该篇文章拆解了playwright的元素定位、输入框输入文本、以及点击操作,结合了pycharm的断点调试、浏览器开发者模式检查元素,用到了以下元素操作方法:

page.locator(selector): 创建一个定位器对象,用于查找和操作页面上的元素。selector可以是CSS选择器、XPath等。
page.click(selector[, options]): 在指定的元素上模拟点击操作。
page.fill(selector, value[, options]): 在表单输入元素中填充文本。

希望大家多多实践~发现问题一起讨论

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

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

相关文章

高考志愿填报秘籍:大学篇

选择适合自己的大学和专业,对广大考生来说至关重要。从某种程度上来说,决定了考生未来所从事的行业和发展前景。为了帮助广大考生更加科学、合理地填报志愿,选择适合自己的大学和专业,本公众号将推出如何用AI填报高考志愿专栏文章…

vue-element-admin后台集成方案

官网:介绍 | vue-element-adminA magical vue adminhttps://panjiachen.github.io/vue-element-admin-site/zh/guide 1.git环境安装配置及简单操作 1.1git环境安装配置 git软件官网:Git - Downloads (git-scm.com)https://git-scm.com/downloads 下载…

python脚本实现arcgis离散型切片png格式十六进制名称转十进制名称

背景 Arcgis中离散型切片为png格式时,它的名称是十六进制格式的,而Arcgis不支持转为十进制格式的,所有需要自己写一个脚本来转换 效果 脚本 import osdef hex_to_dec(name):return str(int(name, 16))def

以bert为例,了解Lora是如何添加到模型中的

以bert为例,了解Lora是如何添加到模型中的 一.效果图1.torch.fx可视化A.添加前B.添加后 2.onnx可视化A.添加前B.添加后 3.tensorboard可视化A.添加前B.添加后 二.复现步骤1.生成配置文件(num_hidden_layers1)2.运行测试脚本 本文以bert为例,对比了添加Lora模块前后的网络结构图…

【Spine学习06】之IK约束绑定,制作人物待机动画,图表塞贝尔曲线优化动作

引入IK约束的概念: 约束目标父级 被约束骨骼子集 这样理解更好,约束目标可以控制被约束的两个骨骼运作 IK约束绑定过程中呢,如果直接绑定最下面的脚掌骨骼会发生偏移,所以在开始处理IK之前,需要先设置一个ROOT结点下的…

签到的二维码怎么制作?快速实现制作二维码签到的方法

现在很多活动会采用二维码的方式来做登记、报名、签到等,通过二维码可以快速获取用户信息,并且对于用户填写内容也提升了便利性,而且还能够节约成本,通过后台就可以查看用户登记的数据,方便后期的分析和信息管理。 想…

自监督分类网络:创新的端到端学习方法

现代人工智能的快速发展中,分类任务的高效解决方案一直备受关注。今天,我们向大家介绍一种名为Self-Classifier的全新自监督端到端分类学习方法。由Elad Amrani、Leonid Karlinsky和Alex Bronstein团队开发,Self-Classifier通过优化同一样本的…

【机器学习】QLoRA:基于PEFT亲手微调你的第一个AI大模型

目录 一、引言 二、量化与微调—原理剖析 2.1 为什么要量化微调? 2.2 量化(Quantization) 2.2.1 量化原理 2.2.2 量化代码 2.3 微调(Fine-Tuning) 2.3.1 LoRA 2.3.2 QLoRA 三、量化与微调—实战演练:以Qwen…

Photoshop 2024 mac/win版:探索图像处理的全新境界

Photoshop 2024是Adobe推出的最新图像处理与设计软件,它在继承了前作所有优秀特性的基础上,实现了多个方面的质的飞跃。这款软件凭借其卓越的图像处理性能、丰富的创意工具以及精确的选区编辑功能,成为了图像处理领域的佼佼者。 Photoshop 2…

Golang免杀-分离式加载器(传参)AES加密

目录 enc.go 生成: dec.go --执行dec.go...--上线 cs生成个c语言的shellcode. enc.go go run .\enc.go shellcode 生成: --key为公钥. --code为AES加密后的数据, ----此脚本每次运行key和code都会变化. package mainimport ("bytes""crypto/aes"&…

redis 08 慢查询日志

1.什么是慢查询日志 2.慢查询和两个参数有关 2.1 2.2 3.例子: 4 参数详细介绍:

共模信号与差模信号

差模信号又称串模信号,指的是两根线之间的信号差值;而共模信号又称对地信号,指的是两根线分别对地的信号。 差模信号:大小相等,方向相反的信号。共模信号:大小相等,方向相同的信号。 对于两输…

集合查询-并(UNION)集运算、交(INTERSECT)集运算、差(EXCEPT)集运算

一、概述 集合查询是对两个SELECT语句的查询结果进行再进行处理的查询 二、条件 1、两个SELECT语句的查询结果必须是属性列数目相同 2、两个SELECT语句的查询结果必须是对应位置上的属性列必须是相同的数据类型 三、并(UNION)运算 1、语法格式: SELECT 语句1…

4090显卡 安装cuda 11.3 版本

文章目录 cuda 安装安装过程中会要求选择安装的内容更改cuda地址到你安装的地方 cuda 安装 cuda官网寻找cuda11.3 版本 https://developer.nvidia.com/cuda-11.3.0-download-archive?target_osLinux&target_archx86_64&DistributionUbuntu&target_version20.04&…

和利时DCS数据采集对接安监平台

在工业互联网日益繁荣的今天,工业数据的采集、传输与利用变得至关重要。特别是在工业自动化领域,数据的实时性和准确性直接关系到生产效率和安全性。和利时DCS(分布式控制系统)以其卓越的稳定性和可靠性,在工业自动化领…

被封号后,我终于明白免费代理的危害

在数字时代,网络已经成为人们日常生活和商业活动中不可或缺的一部分。为了实现更广阔的业务拓展和更畅通的网络体验,许多人开始考虑使用代理服务器。然而,虽然免费代理可能听起来像是个经济实惠的选择,但事实上,它可能…

SSH协议

SSH协议简介 SSH(Secure Shell)是一种网络安全协议,用于在不安全的网络环境中提供加密的远程登录和其他网络服务。它通过加密和认证机制实现安全的访问和文件传输等业务,是Telnet、FTP等不安全远程shell协议的安全替代方案。 SSH协…

数据挖掘丨轻松应用RapidMiner机器学习内置数据分析案例模板详解(下篇)

RapidMiner 案例模板 RapidMiner 机器学习平台提供了一个可视化的操作界面,允许用户通过拖放的方式构建数据分析流程。RapidMiner目前内置了 13 种案例模板,这些模板是预定义的数据分析流程,可以帮助用户快速启动和执行常见的数据分析任务。 …

大模型微调出错的解决方案(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

关于python下安装selenium以及使用

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 目录 1、win10安装python环境 2、…