鼠标悬停 - hover
有些元素,只有你鼠标移动到它那个位置上,他才会展开或者显示一些内容,这时候就要用到hover操作了。
使用方法
参数
可操作性检查表:https://playwright.dev/python/docs/actionability
此方法详细执行步骤
等待元素的可操作性检查,除非force设置为true
如果需要的话,将元素滚动到视图中。
使用page.mouse将鼠标悬停在元素的中心位置,或者是position所指定的位置。
等待启动的导航成功或四百,除非no_wait_after设置为true。
鼠标悬停实战
**案列:**打开百度首页,鼠标放置在左上角的更多位置(悬浮),会显示出百度的其他产品。
需实现效果展示:
代码流程
1、首先我们看一下更多这个元素如何定位
2、可以通过文本定位(但页面上有三个更多),这里这个更多是第一个,我们可以使用nth(0)或者first进行定位
·
3、可以通过class定位,唯一
4、可以通过name定位,唯一
在这里,class和name我均是使用的xpath定位,这个不熟悉的小伙伴可以单独学习一下。
Xpath我常用的:
使用元素的属性来定位元素,可以通过 [@属性名='属性值'] 的方式。
示例://input[@id='username'] 选取 id 属性为 “username” 的 input 元素。
xpath文本定位
完全匹配文本 //*[text()=“登录”]
包含某个文本 //*[contains(text(),“登录”)]
完整代码
输入内容 - fill
在输入框中输入一个值。类似于selenium中的send_keys()
使用方法
参数
此方法详细执行步骤
此方法会先进行可操作性检查(force为默认值时),聚焦元素,对目标元素进行input输入。
如果你想清空此元素的内容,你可以传入空字符串,value = ""。
如果目标元素无法输入文本,将会引发错误。
想要更加细致的输入操作,如模仿人为输入(每个字符之间有输入时间间隔),可以使用locator.type()
输入内容实战
**案例:**在搜素框输入梦无矶的测试开发之路
搜索框网页源码:
定位
1、根据ID定位
2、class定位
3、xpath定位
想不到吧,小小的一个搜索框竟然有如此多的定位方式。
完整代码
执行效果展示
清空内容实战
通过参数我们可以发现,text如果传入一个空值,那么就是进行内容清空。
这里我们先输入一段文本,再输入一个空字符。
执行后发现确实被清空了。教程代码,如果在学习的小伙伴,建议自己写一下运行一下,这些代码我都辛辛苦苦调试好了的,不学好浪费啊!
输入内容 - type
Tips
官方建议使用locator.fill()进行输入,只有当页面上需要执行特殊的按键操作的时候,才使用locator.type()
聚焦元素,输入文本时为文本中的每个字符执行 keydown, keypress/input, and keyup 事件。
若需要执行其他的特殊按键,比如Control,ArrowDown,请使用locator.press()。在后续章节我们会讲到。
使用方法
参数
模拟按键输入内容实战
依旧是使用fill操作中的搜索框进行输入。
完整代码
最终会在输入框中输入梦无矶的测试开发之路。这里就不截图了。
清除 - clear
清除输入字段
使用方法
参数
清除内容实战
这个清除是不是很像我们的fill传入控制符?
这里我们依然是在搜索框中输入内容,再清空。