首页 > 其他分享 >软件测试|web自动化测试神器playwright教程(二十五)

软件测试|web自动化测试神器playwright教程(二十五)

时间:2023-06-18 18:37:12浏览次数:33  
标签:web None playwright 鼠标 move click mouse page 软件测试

软件测试|web自动化测试神器playwright教程(二十五)_python

前言

鼠标为我们使用电脑提供了很多方便,我们看到的东西就可以将鼠标移动过去进行点击就可以打开或者访问内容,当页面内容过长时,我们也可以使用鼠标滚轮来实现对整个页面内容的查看,其实playwright也有鼠标操作的方法,本文我们就来介绍playwright的鼠标操作。


鼠标操作

Mouse 鼠标操作是基于page对象去调用,常用的鼠标操作有单击,双击,滚轮,按住,移动,释放。

  1. page.mouse 使用

Mouse 类在相对于视口左上角的主框架 CSS 像素中运行。

每个page对象都有自己的鼠标,可通过page.mouse访问。语法示例如下:

page.mouse.move(0, 0)
page.mouse.down()
page.mouse.move(0, 100)
page.mouse.move(100, 100)
page.mouse.move(100, 0)
page.mouse.move(0, 0)
page.mouse.up()
  1. 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].
        """

参数说明:

  • x 横向坐标位置
  • y 纵向坐标位置
  • delay 是mousedown 和 mouseup 事件中间的等待时间,单位是毫秒,默认是0
  • button 是点击元素的位置:"left", "middle", "right", 默认参数是left
  • click_count 是点击次数
mouse.click(x, y)
mouse.click(x, y, **kwargs)
  1. dblclick 双击

鼠标双击是mouse.move()、mouse.down()、mouse.up()、mouse.down()和mouse.up()的快捷方式,语法如下:

mouse.dblclick(x, y)
mouse.dblclick(x, y, **kwargs)
  1. mouse.down 按住鼠标

调度一个mousedown事件。

参数说明:

  • button 是点击元素的位置:"left", "middle", "right", 默认参数是left
  • click_count 是点击次数

语法示例:

mouse.down()
mouse.down(**kwargs)
  1. mouse.move 移动

调度一个鼠标移动事件,源码如下:

def move(self, x: float, y: float, *, steps: typing.Optional[int] = None) -> None:
        """Mouse.move

        Dispatches a `mousemove` event.

        Parameters
        ----------
        x : float
        y : float
        steps : Union[int, None]
            Defaults to 1. Sends intermediate `mousemove` events.
        """

语法如下:

mouse.move(x, y)
mouse.move(x, y, **kwargs)
  1. wheel 滚轮

调度一个wheel事件。(滚轮事件如果不处理可能会导致滚动,该方法不会等待滚动结束才返回。),语法如下:

mouse.wheel(delta_x, delta_y)

实例

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://sahitest.com/demo/clicks.htm")
    # 单击
    page.get_by_role("button", name="click me", exact=True).click()
    # 双击
    page.get_by_role("button", name="dbl click me").dblclick()
    # 右击
    page.get_by_role("button", name="right click me").click(button="right")

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

总结

本文主要介绍了playwright的鼠标操作,希望可以帮到大家。



标签:web,None,playwright,鼠标,move,click,mouse,page,软件测试
From: https://blog.51cto.com/u_15649298/6509117

相关文章

  • 初见PlayWright
    PlayWright特色跨浏览器:PlayWright支持所有现代的浏览器渲染引擎,包括Chromium、WebKit、Firefox,这意味着它可以驱动像Chrome、Edge、Firefox、Safari等主流浏览器跨平台:基于浏览器的特性,可以在Windows、Linux和Mac上,以headless或者headed模式运行,并且支持在安卓或者安卓模拟器上原......
  • [Web] Cache Directives
     no-cache:validatecacheasthelatestonebeforeusingit.Thismeansthatacacheshouldnotserveastoredcopyoftheresponsewithoutvalidatingitsfreshnesswiththeserver.Theresponsecanbestoredinacache,butitmustcheckwiththeserver......
  • [Web] PerformanceNavigationTiming
     https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming DNSdomainLookupStartdomainLookupEndTCP/TLSconnectStartsecureConnectionStartconnectEndHTTPRequestrequestStartHTTPResponseresponseStartresponseEndP......
  • SpringBoot:SpringWeb项目+Vue项目dist包整合成jar包
    接到需求做一个小功能项目,其中还要配备前端页面,并且将前端打包进后端jar包内,由jar包运行。项目结构将Vue打包之后的dist文件放到resouces资源路径下修改pom文件将下面的build配置替换掉pom中的build<build><finalName>自定义项目jar名称(可以用${project.artifatId})</finalNam......
  • Hive扩展之web界面:hwi接口
    HWI是HiveWebInterface的简称,是hivecli的一个web替换方案,以开发的网页形式查看数据切换用户启动集群[root@master~]#su-hadoopLastlogin:TueMay213:18:34CST2023onpts/0[hadoop@master~]$start-all.shThisscriptisDeprecated.Insteadusestart-dfs.......
  • java web模板学习+1
    今天找到一个模板很厉害,代码开源的,拔下来就能跑。下面是他的博客地址和他的源代码地址。博客地址:开源一套简单通用的后台管理系统-huanzi-qch-博客园(cnblogs.com)开源地址:https://gitee.com/huanzi-qch/base-admin......
  • IT软件测试中各种环境【杭州多测师_王sir】
    软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管......
  • UniGui web客户端与本地exe通讯
     原文地址......
  • java web模板学习
    经过建民老师几次测验我发现我是真写不完那个web系统项目,然后如果真的打分的话,不会很高。所以接下来时间我要学习一些javaweb模板。这个模板吧主要是基于springboot的系统模板。我学习一下,等下次测验就可以快点。......
  • vue3+vite+web3.js报错ReferenceError: process is not defined
    在vite最新版本中使用web3会报错只需要在vite.config.ts添加如下代码即可解决报错import{fileURLToPath,URL}from'node:url'import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'//引入import{resolve}from'path'export......