《最新出炉》系列初窥篇-Python+Playwright自动化测试-17-处理鼠标悬停

最新,出炉,系列,python,playwright,自动化,测试,处理,鼠标悬停 · 浏览次数 : 18

小编点评

**简介** Playwright 提供了一些用于操作 Web 应用程序的直接方法,但有时测试场景或事件无法完全被覆盖,这时可以考虑使用其他方法来实现悬停操作。例如,在鼠标悬停出现下拉菜单和自动补全的情况下,可以使用 `hover()` 方法来悬停在元素上,然后使用 `click()` 方法来选择下拉菜单项或点击按钮。 **鼠标悬停出现下拉菜单** 1. **悬停元素**:使用 `locator()` 方法查找元素,例如 `page.locator("//*[@name='tj_briicon']")`,它会返回一个包含多个元素的元素。 2. **悬停元素**:使用 `hover()` 方法将元素悬停在指定位置。 3. **获取下拉菜单元素**:使用 `locator()` 方法查找下拉菜单元素,例如 `page.locator("//*[@name='tj_mp3']")`。 4. **选择下拉菜单项**:使用 `click()` 方法点击下拉菜单项。 **搜索输入过程,选择自动补全的字段** 1. **定位搜索框元素**:使用 `locator()` 方法查找搜索框元素,例如 `page.locator("input[name=\\\"wd\\\"]")`。 2. **输入关键词**:使用 `fill()` 方法将关键词输入搜索框中。 3. **选择自动补全项**:使用 `locator()` 方法查找自动补全选项,例如 `page.locator("//*[@id='form']/div/ul/li[@data-key='selenium appium']")`,然后使用 `click()` 方法选择项。

正文

1.简介

有些测试场景或者事件,playwright根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作。比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段。关于鼠标悬停,selenium把这个方法放在了Actions.java文件中,因此也被称之为Actions的相关操作。今天跟随宏哥先来看看鼠标悬停出现下拉菜单和自动补全的情况playwright是如何处理。

2.鼠标悬停出现下拉菜单

鼠标悬停出现下拉菜单,顾名思义就是:鼠标悬停在某一元素上出现下拉菜单。

2.1项目实战

宏哥这里用百度首页的更多元素,悬停出现拉来菜单,然后点击“音乐”为例进行实战。

2.2代码设计

代码设计如下:

2.3参考代码

# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-07-17
@author: 北京-宏哥   QQ交流群:705269076
公众号:北京宏哥
Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-16-处理鼠标悬停-上篇
'''

# 3.导入模块
from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://wwww.baidu.com")
    page.wait_for_timeout(5000)
    dropdown = page.locator("//*[@name='tj_briicon']")
    # 鼠标悬停
    dropdown.hover()
    # 点击音乐选项
    # page.wait_for_timeout(5000)
    page.locator("//*[@name='tj_mp3']").click()
    page.wait_for_timeout(5000)
    # page.pause()
    browser.close()

2.4运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

3.搜索输入过程,选择自动补全的字段

在搜索框输入关键词后,后提示相关内容,然后将其补全进行搜索。

3.1项目实战

宏哥这里就以百度搜索为例,进行实战。

3.2代码设计

代码设计如下:

3.2参考代码

# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-07-17
@author: 北京-宏哥   QQ交流群:705269076
公众号:北京宏哥
Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-16-处理鼠标悬停-上篇
'''

# 3.导入模块
from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context(viewport={'width': 1920, 'height': 1080}, )
    page = context.new_page()
    page.goto("https://wwww.baidu.com")
    page.wait_for_timeout(3000)
    page.fill("input[name=\"wd\"]", "selenium ap")
    page.wait_for_timeout(3000)
    #自动补全其中一个选择项
    auto_text = page.locator("//*[@id='form']/div/ul/li[@data-key='selenium appium']").click()
    page.wait_for_timeout(3000)
    page.click("text=百度一下")
    context.close()
    browser.close()

3.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

4.小结

在Web应用程序中,悬停是一种常见的操作,通常用于显示提示信息或下拉菜单。

好了,时间不早了,今天就分享和讲解到这里。感谢您耐心的阅读和学习。

与《最新出炉》系列初窥篇-Python+Playwright自动化测试-17-处理鼠标悬停相似的内容:

《最新出炉》系列初窥篇-Python+Playwright自动化测试-1-环境准备与搭建

1.简介 有很多人私信留言宏哥问能不能介绍一下Playwright这款自动化神器的相关知识,现在网上的资料太少了。其实在各大博客和公众号也看到过其相关的介绍和讲解。要不就是不全面、不系统,要不就是系统全面但是人家是收费的。当然了宏哥接下来也可能介绍的不全面或者不系统,能力有限望大家理解。 2.Pla

《最新出炉》系列初窥篇-Python+Playwright自动化测试-2-playwright的API及其他知识

1.简介 上一篇宏哥已经将Python+Playwright的环境搭建好了,而且也简单的演示了一下三款浏览器的启动和关闭,是不是很简单啊。今天主要是把一篇的中的代码进行一次详细的注释,然后说一下playwright的API和其他相关知识点。那么首先将上一篇中的代码进行一下详细的解释。 2.代码解释

《最新出炉》系列初窥篇-Python+Playwright自动化测试-3-离线搭建playwright环境

1.简介 有些小伙伴或者童鞋们私信留言说自己是在公司局域网办公,或者公司为了安全对网络管控比较严格(尤其是一些大的国企、央企),总之就是一句话无法连到外网去在线下载,宏哥刚看到留言时觉得这问题还留言问啊,你找个有网的电脑下载好安装包然后安装就可以用了。(第一种情况及解决办法:带要搭建环境的电脑到有网

《最新出炉》系列初窥篇-Python+Playwright自动化测试-4-playwright等待浅析

1.简介 在介绍selenium的时候,宏哥也介绍过等待,是因为在某些元素出现后,才可以进行操作。有时候我们自己忘记添加等待时间后,查了半天代码确定就是没有问题,奇怪的就是获取不到元素。然后搞了好久,或者经过别人的提示才恍然大悟没有添加等待时间。而playwright为了避免我们犯这么low的错误,

《最新出炉》系列初窥篇-Python+Playwright自动化测试-5-元素定位大法-上篇

1.简介 说到元素定位,小伙伴或者童鞋们肯定会首先想到 selenium 的八大元素定位大法。同理Playwright也有自己的元素定位的方法。今天就给小伙伴或者童鞋们讲解和分享一下Playwright的元素定位方法。 宏哥对UI自动化的理解:定位元素 >操作元素 >断言。 2.定位器 定位器(Lo

《最新出炉》系列初窥篇-Python+Playwright自动化测试-6-元素定位大法-下篇

1.简介 上一篇主要是讲解我们日常工作中在使用Playwright进行元素定位的一些比较常用的定位方法的理论基础知识以及在什么情况下推荐使用。今天这一篇讲解和分享一下,在日常中很少用到或者很少见的定位,但是遇到了我们也要会,俗话说:手里有粮心里不慌。 2.阴影定位-Shadow DOM 在做web自

《最新出炉》系列初窥篇-Python+Playwright自动化测试-11-playwright操作iframe-上篇

1.简介 原估计宏哥这里就不对iframe这个知识点做介绍和讲解了,因为前边的窗口切换就为这种网页处理提供了思路,另一个原因就是虽然iframe很强大,但是现在很少有网站用它了。但是还是有小伙伴或者童鞋们私下问这个问题,那么宏哥就单独写一篇关于iframe网页处理的文章。iframe 是web自动化

《最新出炉》系列初窥篇-Python+Playwright自动化测试-12-playwright操作iframe-中篇

1.简介 按照计划今天就要用实际的例子进行iframe自动化测试。经过宏哥长时间的查找,终于找到了一个含有iframe的网页(QQ邮箱和163邮箱),别的邮箱宏哥就没有细看了。所以今天这一篇的主要内容就是用这两个网页的iframe结合上一篇的理论知识,宏哥给小伙伴或者童鞋们演示一下。 2.QQ邮箱

《最新出炉》系列初窥篇-Python+Playwright自动化测试-13-playwright操作iframe-下篇

1.简介 通过前边两篇的学习,想必大家已经对iframe有了一定的认识和了解,今天这一篇主要是对iframe做一个总结,主要从iframe的操作(输入框、点击等等)和定位两个方面进行总结。 2.iframe是什么? iframe 简单来说就是一个 html 嵌套了另外一个 html。在页面元素上最简

《最新出炉》系列初窥篇-Python+Playwright自动化测试-14-playwright操作iframe-番外篇

1.简介 通过前边三篇的学习,想必大家已经对iframe有了一定的认识和了解,今天这一篇主要是对iframe的一些特殊情况的介绍和讲解,主要从iframe的定位、监听事件和执行js脚本三个方面进行展开介绍。 2.iframe定位 2.1动态id属性如何定位 有时候,我们可能看到的iframe 的id