python+playwright 学习-45 鼠标操作-拖拽操作 drag_to

前言

按住元素从页面的一个位置拖动到另外一个位置,有2种方式可以实现

  • locator.drag_to(target: locator) 先定位元素,调用drag_to方法到目标元素
  • page.drag_and_drop(source: str, target: str) page对象直接调用

场景

目标元素

拖动到指定位置

locator.drag_to 拖拽操作

您可以使用locator.drag_to()执行拖放操作。此方法将:

  • 将鼠标悬停在要拖动的元素上。
  • 按鼠标左键。
  • 将鼠标移动到将接收放置的元素。
  • 松开鼠标左键。

使用示例

page.locator("#item-to-be-dragged").drag_to(page.locator("#item-to-drop-at"))

先分别定为目标元素和拖动的位置元素,调用drag_to 方法拖拽操作

    # 目标元素
    source = page.get_by_text('登录成功用例')
    # 终点位置
    target = page.locator('#my_plan')
    # 拖拽操作
    source.drag_to(target)

page.drag_and_drop 拖动

通过page对象调用drag_and_drop ,部分源码如下

def drag_and_drop(  
    self,  
    source: str,  
    target: str,  
    *,  
    source_position: typing.Optional[Position] = None,  
    target_position: typing.Optional[Position] = None,  
    force: typing.Optional[bool] = None,  
    no_wait_after: typing.Optional[bool] = None,  
    timeout: typing.Optional[float] = None,  
    strict: typing.Optional[bool] = None,  
    trial: typing.Optional[bool] = None  
) -> None:

source 和 target 是字符串格式,也就是传selector 选择器的方法

page.drag_and_drop('text=登录成功用例',  '#my_plan')

手动拖动

如果您想精确控制拖动操作,请使用较低级别的方法,如locator.hover()、mouse.down()、mouse.move()和mouse.up()。

# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/

    page.get_by_text('登录成功用例').hover()
    page.mouse.down()
    page.locator("#my_plan").hover()
    page.mouse.up()

如果您的页面依赖于dragover正在调度的事件,则您至少需要移动两次鼠标才能在所有浏览器中触发它。
要可靠地发出第二次鼠标移动,请重复mouse.move()或locator.hover()两次。
操作顺序是:悬停拖动元素,鼠标向下,悬停放置元素,第二次悬停放置元素,鼠标向上。



2023最新《Playwright+Python自动化测试》点我 ->立即参与
联系微信:283340479

posted @   上海-悠悠  阅读(1672)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2022-04-03 python测试开发django-189.安装celery==3.1.26.post2版本报错No matching distribution found for anyjson>=0.3.3
2022-04-03 2022年第 1 期《Python 测试平台开发》课程(4月10号开学)
2020-04-03 pytest文档34-Hooks函数改变用例执行顺序(pytest_collection_modifyitems)
2019-04-03 python测试开发django-46.xadmin添加action动作
2019-04-03 python测试开发django-45.xadmin添加小组件报错解决
2019-04-03 python测试开发django-44.xadmin自定义菜单项
2018-04-03 selenium+python自动化94-行为事件(ActionChains)源码详解
点击右上角即可分享
微信分享提示