1.简介

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

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

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

2.1项目实战

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

2.2代码设计

代码设计如下:

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

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()
09-28 18:37