【python自动化】Playwright基础教程(五)事件操作②悬停&输入&清除精讲

简介: 【python自动化】Playwright基础教程(五)事件操作②悬停&输入&清除精讲

 

鼠标悬停 - hover

有些元素,只有你鼠标移动到它那个位置上,他才会展开或者显示一些内容,这时候就要用到hover操作了。

使用方法

image.png

参数

image.png

可操作性检查表:https://playwright.dev/python/docs/actionability

 

此方法详细执行步骤

 

等待元素的可操作性检查,除非force设置为true

如果需要的话,将元素滚动到视图中。

使用page.mouse将鼠标悬停在元素的中心位置,或者是position所指定的位置。

等待启动的导航成功或四百,除非no_wait_after设置为true。

鼠标悬停实战

**案列:**打开百度首页,鼠标放置在左上角的更多位置(悬浮),会显示出百度的其他产品。

需实现效果展示:

image.png

代码流程

1、首先我们看一下更多这个元素如何定位

image.png

2、可以通过文本定位(但页面上有三个更多),这里这个更多是第一个,我们可以使用nth(0)或者first进行定位

·

image.png

3、可以通过class定位,唯一

image.png

4、可以通过name定位,唯一

image.png

在这里,class和name我均是使用的xpath定位,这个不熟悉的小伙伴可以单独学习一下。

 

Xpath我常用的:

 

使用元素的属性来定位元素,可以通过 [@属性名='属性值'] 的方式。

示例://input[@id='username'] 选取 id 属性为 “username” 的 input 元素。

 

xpath文本定位

完全匹配文本 //*[text()=“登录”]

包含某个文本 //*[contains(text(),“登录”)]

完整代码

image.png

输入内容 - fill

在输入框中输入一个值。类似于selenium中的send_keys()

使用方法

image.png


参数

image.png

此方法详细执行步骤

 

此方法会先进行可操作性检查(force为默认值时),聚焦元素,对目标元素进行input输入。

如果你想清空此元素的内容,你可以传入空字符串,value = ""。

如果目标元素无法输入文本,将会引发错误。

想要更加细致的输入操作,如模仿人为输入(每个字符之间有输入时间间隔),可以使用locator.type()

输入内容实战

**案例:**在搜素框输入梦无矶的测试开发之路

搜索框网页源码:

image.png

定位

1、根据ID定位

image.png

2、class定位

image.png

3、xpath定位

image.png

想不到吧,小小的一个搜索框竟然有如此多的定位方式。

完整代码

image.png

执行效果展示

image.png

清空内容实战

通过参数我们可以发现,text如果传入一个空值,那么就是进行内容清空。

这里我们先输入一段文本,再输入一个空字符。

执行后发现确实被清空了。教程代码,如果在学习的小伙伴,建议自己写一下运行一下,这些代码我都辛辛苦苦调试好了的,不学好浪费啊!

image.png

输入内容 - type

Tips

 

官方建议使用locator.fill()进行输入,只有当页面上需要执行特殊的按键操作的时候,才使用locator.type()

聚焦元素,输入文本时为文本中的每个字符执行 keydown, keypress/input, and keyup 事件。

若需要执行其他的特殊按键,比如Control,ArrowDown,请使用locator.press()。在后续章节我们会讲到。

使用方法

image.png

参数

image.png

模拟按键输入内容实战

依旧是使用fill操作中的搜索框进行输入。

完整代码

image.png

最终会在输入框中输入梦无矶的测试开发之路。这里就不截图了。

清除 - clear

清除输入字段

使用方法

image.png

参数

image.png

清除内容实战

这个清除是不是很像我们的fill传入控制符?

这里我们依然是在搜索框中输入内容,再清空。

image.png

目录
相关文章
|
6天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
12 1
|
8天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 插值 2
SciPy插值教程:介绍插值概念及其在数值分析中的应用,特别是在处理数据缺失时的插补和平滑数据集。SciPy的`scipy.interpolate`模块提供了强大的插值功能,如一维插值和样条插值。通过`UnivariateSpline()`函数,可以轻松实现单变量插值,示例代码展示了如何对非线性点进行插值计算。
11 3
|
9天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 7
本教程介绍了SciPy的空间数据处理功能,涵盖如何使用`scipy.spatial`模块进行点的位置判断、最近点计算等操作。还详细解释了距离矩阵的概念及其在生物信息学中的应用,以及汉明距离的定义和计算方法。示例代码展示了如何计算两个点之间的汉明距离。
17 1
|
6天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 插值 3
本教程介绍了SciPy中的插值方法,包括什么是插值及其在数据处理和机器学习中的应用。通过 `scipy.interpolate` 模块,特别是 `Rbf()` 函数,展示了如何实现径向基函数插值,以平滑数据集中的离散点。示例代码演示了如何使用 `Rbf()` 函数进行插值计算。
13 0
|
6天前
|
Python
SciPy 教程 之 Scipy 显著性检验 1
本教程介绍Scipy显著性检验,包括统计假设、零假设和备择假设等概念,以及如何使用scipy.stats模块进行显著性检验,以判断样本与总体假设间是否存在显著差异。
11 0
|
1月前
|
数据可视化 IDE 开发工具
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
234 13
|
1月前
|
监控 数据可视化 搜索推荐
【Python篇】matplotlib超详细教程-由入门到精通(下篇)2
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
33 8
|
1月前
|
数据可视化 API 数据处理
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
86 5
|
1月前
|
编解码 数据可视化 IDE
【Python篇】matplotlib超详细教程-由入门到精通(下篇)1
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
31 3
|
1月前
|
数据可视化 IDE 开发者
【Python篇】PyQt5 超详细教程——由入门到精通(终篇)
【Python篇】PyQt5 超详细教程——由入门到精通(终篇)
49 1