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

本篇详细分享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]): 在表单输入元素中填充文本。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之激活函数

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。 1. 为什么需要激活…

雷神电脑怎么找文件所在位置?四个方法让你轻松上手

在数字化时代,电脑文件的管理与存储显得尤为重要。对于使用雷神电脑的用户而言,了解如何快速定位文件所在位置,以及在文件丢失时采取有效的应对措施,是提升工作效率、保障数据安全的关键。本文将围绕这两个核心问题展开&#xff0…

怎么更快捷的修改图片大小?压缩图片jpg、png、gif的快捷方法

jpg作为最常用的一种图片格式,在遇到图片太大问题时,该如何操作能够快速在压缩图片jpg的大小呢?图片太大无法上传时目前常见的一个使用问题,只有将图片处理到合适的大小才可以正常在平台上传使用,一般情况下想要快速解…

Android帧绘制流程深度解析 (二)

书接上回:Android帧绘制流程深度解析 (一) 5、 dispatchVsync: 在请求Vsync以后,choreographer会等待Vsync的到来,在Vsync信号到来后,会触发dispatchVsync函数,从而调用onVsync方法…

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

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

Web应用安全测试-认证功能缺陷

Web应用安全测试-认证功能缺陷 存在空口令 漏洞描述:认证登录环节允许空口令 测试方法: 找到网站登录页面,尝试输入用用户名,密码为空进行登录。 风险分析:攻击者可利用该漏洞登录网站后台,操作敏感数…

qmt量化交易策略小白学习笔记第30期【qmt编程之获取行业概念数据--如何获取板块分类信息数据以及板块成分股数据】

qmt编程之获取行业概念数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系! 获取行业概念数…

VS2022+Qt雕刻机单片机马达串口上位机控制系统

程序示例精选 VS2022Qt雕刻机单片机马达串口上位机控制系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《VS2022Qt雕刻机单片机马达串口上位机控制系统》编写代码,代码整洁&a…

另辟蹊径的终端防病毒

在数字时代的浪潮中,网络安全问题愈发凸显,防病毒成为了保护信息安全的重要一环。而白名单作为一种有效的安全策略,在防病毒方面发挥着不可或缺的作用。 首先,我们需要明确白名单的概念。白名单是一种管理和安全实践,用…

【代码随想录】【算法训练营】【第30天 1】 [322]重新安排行程 [51]N皇后

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 30,周四,好难,会不了一点~ 题目详情 [322] 重新安排行程 题目描述 322 重新安排行程 解题思路 前提:…… 思路:回溯。 重点&…

ABB控制主板3BHE024855R0101 UF C921 A101

控制板也是一种电路板,其运用的范围虽不如电路板来的宽泛,但却比普通的电路板来的智能、自动化。简单的说,能起到控制作用的电路板,才可称为控制板。大到厂家的自动化生产设备,小到孩童用的玩具遥控汽车,内…

【OpenCV】opencv-4.9.0源码编译(二)

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享OpenCV源码编译时所遇到的问题,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一…

一文教会你静态住宅代理IP的优势和选择技巧,跨境小白收好这份指南!

一、什么是静态住宅代理IP? 静态住宅代理IP是指分配给个人住宅网络的IP地址,这些IP地址在长时间内保持不变。它们是从互联网服务提供商(ISP)获取的,因此拥有更高的可信度和较低的被封禁风险。静态住宅代理IP因其独特的…

基于 Python 解析 XML 文件并将数据存储到 MongoDB 数据库

1. 问题背景 在软件开发中,我们经常需要处理各种格式的数据。XML 是一种常用的数据交换格式,它可以存储和传输结构化数据。很多网站会提供 XML 格式的数据接口,以便其他系统可以方便地获取数据。 我们有这样一个需求:我们需要从…

Python界面编辑器Tkinter布局助手 使用体验

一、发现 我今天在网上搜关于Python Tkinter方面的信息时,发现了Python界面编辑器 Tkinter布局助手 的使用说明。 https://blog.csdn.net/weixin_52777652/article/details/135291731?spm1001.2014.3001.5506 这个编辑器是个开源的项目,个人用户可以…

Ecahrts横向柱状图自动滚动

1.定义一个定时器标识 let timer: NodeJS.Timer; // 定时器 2.定义展示的数据的条数 const dataZoomEndValue 5; // 数据窗口范围的结束数值(一次性展示几个) 3.设置datazoom的相关参数 dataZoom: [{show: false, // 是否显示滑动条xAxisIndex: 0, // 表示从X轴的零刻度线…

香橙派 AIpro 评测与使用心得

引言 香橙派 AIpro(OrangePi AIpro)是一款尺寸小巧却功能强大的AI边缘设备,其仅有107*68mm的超小尺寸使得它在各种场景下都能轻松部署。它支持两种流行的操作系统,包括Ubuntu和openEuler,为用户提供了更多的选择和灵活…

Windows同一文件夹下支持大小写同名文件

举例:同一文件目录下需要存在A.java, a.java, Windows是不支持的,这时候需要建一个Linux子系统的文件夹 创建教程 1、在启用或关闭Windows功能下面找到 适用于Linux系统的Windows子系统 2、cmd 执行命令 fsutil file SetCaseSensitiveInfo 文件夹路径 …

新注册与新核准有什么区别?在哪可以找到新注册新核准的企业名单?

新注册:指的是公司刚刚完成工商注册登记,成为法律意义的经营实体。 新核准:指的是企业通过证券监管机构的审核,获得公开发行股票或债券的资格。 注册主要关注企业的基本资质和合规性,而核准是已经注册的公司进行财务…