首页 > 编程语言 >python+playwright 学习-27 鼠标悬停 hover() 和listitem 定位

python+playwright 学习-27 鼠标悬停 hover() 和listitem 定位

时间:2023-03-09 13:25:09浏览次数:48  
标签:playwright dropdown python 27 鼠标悬停 listitem locator page

前言

鼠标悬停到某个元素上后出现一些选项,这是很常见的操作了,playwright 操作鼠标悬停非常简单,只需调用hover() 方法。

鼠标悬停

打开官网https://playwright.dev/

鼠标悬停到按钮上才会出现选项

代码示例

from playwright.sync_api import sync_playwright
# 上海悠悠 wx:283340479  
# blog:https://www.cnblogs.com/yoyoketang/

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://playwright.dev/")

    dropdown = page.locator('.dropdown--hoverable')
    # 鼠标悬停
    dropdown.hover()
    # 点选项
    dropdown.locator('.dropdown__link >> text=python').click()


    page.pause()
    browser.close()

listitem 定位

对于ul-li的元素,可以用listitem 的角色定位方式

<ul>
  <li>
    <h3>Product 1</h3>
    <button>Add to cart</button>
  </li>
  <li>
    <h3>Product 2</h3>
    <button>Add to cart</button>
  </li>
</ul>

配合 locator.filter() 过滤选择器一起使用

page.get_by_role("listitem").filter(has_text="Product 2").get_by_role(
    "button", name="Add to cart"
).click()

于是前面的

    dropdown = page.locator('.dropdown--hoverable')
    # 鼠标悬停
    dropdown.hover()
    # 点选项
    dropdown.locator('.dropdown__link >> text=python').click()

可以换成

    # 上海悠悠 wx:283340479  
    # blog:https://www.cnblogs.com/yoyoketang/
    dropdown = page.locator('.dropdown--hoverable')
    # 鼠标悬停
    dropdown.hover()
    # 点选项
    # dropdown.locator('.dropdown__link >> text=python').click()

    dropdown.get_by_role("listitem").filter(has_text="python").click()

标签:playwright,dropdown,python,27,鼠标悬停,listitem,locator,page
From: https://www.cnblogs.com/yoyoketang/p/17198000.html

相关文章

  • OpenAI/ChatGPT的Python API,关于os.getenv()环境变量设置问题。
    OpenAI官方的pythonapi连接示例中有一行代码openai.api_key=os.getenv("OPENAI_API_KEY")其中的os.getenv()是从环境中获取环境变量,上面代码要获取的就是OP......
  • 使用Python实现简易版Netcat
    NetcatNetcat是一种网络工具,也称为“nc”,可用于在计算机网络之间进行TCP/IP或UDP连接。它可以用于连接到其他计算机上的端口,发送和接收数据,扫描端口以及创建服务器等。使......
  • 实验1 Python开发环境使用和编程初体验
    task1_1:1.print('hey,u')print('hey','u')x,y,z=1,2,3print(x,y,z)print('x=%d,y=%d,z=%d'%(x,y,z))print('x={},y={},z={}'.format(x,y,z))print(f'x={x},y=......
  • Python列表(list)
    Python 列表(List)序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字-它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类......
  • Python单例模式
    单例模式(SingletonPattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上......
  • python连接mysql
    conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",password="root",database="mydatabase",charset="utf8")cur=conn.cursor(cursor=pymysql.cursor......
  • 从一个坐标点移动到另一个坐标点,每次移动x,y最大举例不能超过127 , 算法
    我的思路是这样的,先移正方形距离,再移横向或者纵向距离,最终移动边边角角的距离代码如下typeKVMMouseControlstruct{ KeyStateuint8`json:"keyState"`//按键状态......
  • Python基本语法 -- 变量、运算、字符串
    对象要存储一个对象需要包括id(标识,对象一旦创建id永不改变,在内存中的位置)、type(类型,当前对象的类型,决定其功能)和value(值,存储的具体值)根据其值能否更改进行分类,可分为可......
  • python+playwright 学习-26 locator.filter()过滤定位器
    前言locator.filter()方法可以对locator定位到的元素进行筛选过滤,可以按文本过滤,也可以按locator定位器过滤。locator.filter()文本过滤考虑以下DOM结构,我们要在其......
  • Python学习日志
    面对if语句,python和java和C不同的是,python更多的是if条件1语句:内容elif条件2语句:内容else:内容 #上面所有条件都不满足,则运行该条件语句下的。 0A=int(input()......