《最新出炉》系列入门篇-Python+Playwright自动化测试-44-鼠标操作-上篇
1.简介
前边文章中已经讲解过鼠标的拖拽操作,今天宏哥在这里对其的其他操作进行一个详细地介绍和讲解,然后对其中的一些比较常见的、重要的操作单独拿出来进行详细的介绍和讲解。
2.鼠标操作语法
鼠标操作介绍官方API的文档地址:https://playwright.dev/docs/api/class-mouse
Mouse鼠标操作是基于page对象去调用。常用的鼠标操作有单击,双击,滚轮,按住,移动,释放。
2.1官方示例
1.使用` page.mouse` 画 一个100x100的正方形。语法如下:
# Using ‘page.mouse’ to trace a 100x100 square.
# 鼠标移动到(0,0)坐标
await page.mouse.move(0, 0);
# 按下鼠标
await page.mouse.down();
# 鼠标纵坐标向下移动100像素
await page.mouse.move(0, 100);
# 鼠标横坐标向右移动100像素
await page.mouse.move(100, 100);
# 鼠标纵坐标向上移动100像素
await page.mouse.move(100, 0);
# 鼠标纵坐标向左移动100像素
await page.mouse.move(0, 0);
# 释放鼠标
await page.mouse.up();
2.鼠标运行轨迹,如下图所示:
3.牛刀小试
我们就利用上边的官方例子打开在线画图:https://draw.yunser.com/,根据官网的示列画一个正方形给小伙伴或童鞋们进行演示一下。
3.1代码设计
3.2参考代码
# coding=utf-8 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-12-12
@author: 北京-宏哥
公众号:北京宏哥
Project: 《最新出炉》系列入门篇-Python+Playwright自动化测试-44-鼠标操作-上篇
''' # 3.导入模块
from playwright.sync_api import Playwright, sync_playwright, expect def run(playwright: Playwright) -> None: def mouse_operate():
# https://draw.yunser.com/
page.mouse.move(350, 200)
page.mouse.down()
page.mouse.move(350, 300)
page.mouse.move(450, 300)
page.mouse.move(450, 200)
page.mouse.move(350, 200)
page.mouse.up() browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://draw.yunser.com/")
page.wait_for_timeout(1000)
mouse_operate()
page.wait_for_timeout(1000)
# page.pause()
context.close()
browser.close() with sync_playwright() as playwright:
run(playwright)
3.3运行代码
1.运行代码,右键Run'Test',控制台输出,如下图所示:
2.运行代码后电脑端的浏览器的动作。如下图所示:
4.click模拟鼠标点击
鼠标click 点击是mouse.move()、mouse.down()、mouse.up()的快捷方式。可以简单的理解为这三个操作的是一套组合拳。语法如下:
def click(
self,
x: float,
y: float,
*,
delay: typing.Optional[float] = None,
button: typing.Optional[Literal["left", "middle", "right"]] = None,
click_count: typing.Optional[int] = None
) -> None:
"""Mouse.click Shortcut for `mouse.move()`, `mouse.down()`, `mouse.up()`. Parameters
----------
x : float
y : float
delay : Union[float, None]
Time to wait between `mousedown` and `mouseup` in milliseconds. Defaults to 0.
button : Union["left", "middle", "right", None]
Defaults to `left`.
click_count : Union[int, None]
defaults to 1. See [UIEvent.detail].
"""
4.1参数详解
参数 |
类型 |
释义 |
---|---|---|
x |
float |
x横向坐标 |
y |
float |
y纵向坐标 |
button |
list["left", "middle", "right"] |
左中右可选,是点击元素的位置:"left", "middle", "right", 默认参数是left |
click_count |
int |
点击次数,默认值为1,含义参考:https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail |
delay |
float |
按下按键和松开按键之间时间(单位为毫秒),默认为0毫秒。 |
4.2使用方法
mouse.click(x, y)
mouse.click(x, y, **kwargs)
5.dblclick模拟鼠标双击
鼠标双击是mouse.move()、mouse.down()、mouse.up()、mouse.down()和mouse.up()的快捷方式。
5.1参数详解
参数 |
类型 |
释义 |
---|---|---|
x |
float |
x横向坐标 |
y |
float |
y纵向坐标 |
button |
list["left", "middle", "right"] |
左中右可选,是点击元素的位置:"left", "middle", "right", 默认参数是left |
click_count |
int |
点击次数,默认值为1,含义参考:https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail |
delay |
float |
按下按键和松开按键之间时间(单位为毫秒),默认为0毫秒。 |
5.2使用方法
mouse.dbclick(x, y)
mouse.dbclick(x, y, **kwargs)
6.小结
今天主要讲解了playwright如何模拟鼠标进行操作的一些方法以及示例基础知识,也很简单。好了,今天时间不是很早了,宏哥就讲解和分享到这里,感谢您耐心的阅读!!!
《最新出炉》系列入门篇-Python+Playwright自动化测试-44-鼠标操作-上篇的更多相关文章
- Spring实践系列-入门篇(一)
本文主要介绍了在本地搭建并运行一个Spring应用,演示了Spring依赖注入的特性 1 环境搭建 1.1 Maven依赖 目前只用到依赖注入的功能,故以下三个包已满足使用. <properti ...
- Google C++测试框架系列入门篇:第三章 基本概念
上一篇:Google C++测试框架系列入门篇:第二章 开始一个新项目 原始链接:Basic Concepts 词汇表 版本号:v_0.1 基本概念 使用GTest你肯定会接触到断言这个概念.断言是用 ...
- Google C++测试框架系列入门篇:第二章 开始一个新项目
上一篇:Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest? 原始链接:Setting up a New Test Project 词汇表 版本号:v_0.1 开始一个新项目 ...
- Python+Selenium自动化 模拟鼠标操作
Python+Selenium自动化 模拟鼠标操作 在webdriver中,鼠标的一些操作如:双击.右击.悬停.拖动等都被封装在ActionChains类中,我们只用在需要使用的时候,导入这个类就 ...
- 深入浅出ASP.NET Core系列(入门篇)
入门篇 1.1.专题介绍 1.2.环境安装 1.3.创建项目 1.4部署到IIS 1.5准备CentOS和Nginx环境 1.6部署到CentOS 2.1命令行和JSON的配置 2.2Bind建立配置 ...
- 0x00-Kali Linux 系列入门篇
Kali Linux介绍篇 Kali Linux 官网:https://www.kali.org/ Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Li ...
- Node.js 从入门到茫然系列——入门篇
在创建服务的时候,我们一般代码就是: var http = require("http"); var server = http.createServer(function(req ...
- Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest?
原始链接:Introduction: Why Google C++ Testing Framework? 词汇表 版本号:v_0.1 介绍:为什么使用GTest? GTest帮助你写更好的C++测试代 ...
- python - 接口自动化测试 - MysqlUtil - 数据库操作封装
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: mysql_util.py @ide: PyCharm C ...
- Sping Boot入门到实战之入门篇(三):Spring Boot属性配置
该篇为Sping Boot入门到实战系列入门篇的第三篇.介绍Spring Boot的属性配置. 传统的Spring Web应用自定义属性一般是通过添加一个demo.properties配置文件(文 ...
随机推荐
- archlinux开机出现错误Dependency failed for /home. Dependency failed for Local File System Time outwaiting for device /dev/disk/...
错误如下 Dependency failed for /home. Dependency failed for Local File System Time outwaiting for device ...
- Python企业面试题1 —— 基础篇
1. b.B.KB.MB.GB的关系? b ---- 位(bit) B ---- 字节(一个字节等于8位) 1 B = 8 bit 1 KB = 1024 B 1 MB = 1024 KB 1 GB ...
- #线性筛,斐波那契数列,GCD#BZOJ 2813 奇妙的Fibonacci
题目 有一个斐波那契数列,满足 \[F_n=\begin{cases}1\qquad (n==1)\\1\qquad (n==2)\\F_{n-1}+F_{n-2}\qquad (n>2)\en ...
- #高精度,模拟,vector#C 前缀
From 2020牛客NOIP赛前集训营-提高组(第二场) 传送门 分析 像我这么菜就只会模拟呀(考场CE全部爆零QWQ) 题意就是不断跳到下一个字母问总共跳的长度有多长, 首先用一个变量存下初始位置 ...
- OpenHarmony 社区运营报告(2023 年 10 月)
● 截至2023年10月,OpenHarmony社区共有51家共建单位,累计超过6200名贡献者产生24.2万多个PR,2.3万多个Star,6.1万多个Fork,59个SIG. ● OpenHa ...
- 巴延兴:从主导多个SIG组到OpenHarmony“代码贡献之星”,我是如何做到的?
编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献.分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点. 巴延兴 深圳开鸿数 ...
- 深入理解 Java 修饰符与封装:访问权限、行为控制与数据隐藏
Java 修饰符 Java 修饰符 用于控制类.属性.方法和构造函数的访问权限和行为.它们可以分为两组: 访问修饰符: public: 意味着代码对所有类可访问. private: 意味着代码只能在声 ...
- java内存模型(jmm)概念初探
1.和java内存结构的区别: 很多人会把jmm和Java内存结构搞混,网上搜到的一些文章也是如此,java内存结构就是我们常说的堆,栈,方法区,程序计数器..., 当jvm虚拟机启动的时候,会初始化 ...
- 优先队列的基本实现【数据结构与算法—TypeScript 实现】
笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 特性 效率比普通队列高 每个出队元素拥有最高优先级 可以用 数组.链表 等数据结构实现,但是 堆结构 是最常用的实现方式 ...
- Java多线程之Callable和Future
Java多线程之Callable和Future 本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果. Callable接口类似于Runnable,从名字就可以看出来 ...