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

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

时间:2023-06-30 11:36:18浏览次数:40  
标签:web playwright 登录 滑块 slider mouse page 软件测试

前言

我们在日常工作和生活中,经常会遇到滑块的情况,如下图所示:

软件测试|web自动化测试神器playwright教程(二十一)_登录验证

淘宝的网页登录,在我们输入完账号密码后,需要按住滑块,并且滑动至最右边,才可以登录。这是最为常见的滑块安全验证机制,当然也对我们的自动化工作造成了部分的困扰,在selenium中,我们可以通过滑动滑块来解决这个问题,而playwright同样可以帮助我们实现这个操作。

操作滑块

playwright提供了下面的鼠标方法来操作滑块,具体方法如下:

  • mouse.move() 起点或终点坐标位置
  • mouse.down() 按住鼠标
  • mouse.up() 释放鼠标

示例如下:

我们还是以淘宝登录页面为例进行操作,代码如下:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://login.taobao.com/")
    page.get_by_placeholder("账号名/邮箱/手机号").click()
    page.get_by_placeholder("账号名/邮箱/手机号").fill("xxxxx")
    page.get_by_placeholder("请输入登录密码").click()
    page.get_by_placeholder("请输入登录密码").fill("xxxxxxxxxxxxxx")
    slider = page.locator('#baxia-dialog-content').bounding_box()
    page.mouse.move(x=slider['x'], y=slider['y']+slider['height']/2)
    page.mouse.down()
    page.mouse.move(x=slider['x']+240, y=slider['y']+slider['height']/2)
    page.mouse.up()
    page.pause()
    page.get_by_role("button", name="登录").click()
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

总结

本文主要介绍了使用playwright实现绕过滑块的登录验证的方法,在滑块登录验证的方面,playwright比selenium更为简洁快速,不需要导入其他的方法,比较推荐使用playwright的方法来实现该功能。


标签:web,playwright,登录,滑块,slider,mouse,page,软件测试
From: https://blog.51cto.com/u_15640304/6589241

相关文章

  • 软件测试|web自动化测试神器playwright教程(二十二)
    前言工作和生活中,经常会遇到我们需要进行选择的情况,比如勾选,或者我们选择性别,男女两个性别总是不能同时选中的,比如我们在选择兴趣爱好时,我们可以选择多个自己感兴趣的话题,比如篮球足球电竞等话题。我们在执行自动化测试的过程中,必须要学会处理这样的情况。页面示例以下面的界面为例......
  • 软件测试|web自动化测试神器playwright教程(二十三)
    前言我们在进行web自动化时,经常遇到一些不好操作的元素,普通的元素定位和操作容易报错,如果我们使用的selenium的话,就可以使用selenium调用js脚本进行操作。在playwright中也有类似的方法,使用page.evaluate()执行JavaScript脚本。page.evaluate()和page.evaluate_handle()之间的唯......
  • 基于SpringMVC搭建WebSocker
    SpringMVC的搭建请参考我以前的文章基于XML搭建SpringMVC项目基于Spring注解搭建SpringMVC项目(推荐)1.添加pom依赖本文使用最新的Spring6,一些依赖的问题需要自行解决<!--添加socket支持--><dependency><groupId>org.springframework</groupId><a......
  • .net6搭建websocket
    当使用.NET6构建WebSocket微服务时,可以按照以下步骤进行操作:1.创建新的.NET6项目:打开适用于.NET6的IDE(如VisualStudio2022或VisualStudioCode),创建一个新的空白项目。.net6默认引入了Microsoft.AspNetCore.WebSockets2,3步骤省略2.添加WebSocket支持:确保项目引用了`Mi......
  • OpenWebSpider 安装使用
    OpenWebSpider是一个很好用的网络爬虫,也可以叫做“网络蜘蛛”.安装:1.使用Vs.net2003编译,记得要copylibmysql.dll到工程里2.配置文件openwebspider.conf将已经启动了的mysql数据库用户名,密码填写好3.数据库建立执行sql_struct.txt下的文件目录。OKGoahead,grabbleyourw......
  • 音视频之webRTC和直播
    webrtc是什么Webreal-timecommunication,实时通讯解决方案,涵盖音视频采集、通讯建立、信息传输、音视频显示。怎么做到的音视频采集通过webrtc中MediaStreamAPIgetUserMedia可以获取设备媒体流,包括麦克风、摄像头、屏幕画面等,需要注意兼容性问题。端到端如何音视......
  • Nginx 常用的基础配置(web前端相关方面)
    基础配置userroot;worker_processes1;events{worker_connections10240;}http{log_format'$remote_addr-$remote_user[$time_local]''"$request"$sta......
  • 全栈测试开发系列----WebDriver API及对象识别技术(二)---selenium验证码处理的多种实现
    前言对于测试人员而言,不管是进行性能测试还是自动化测试,验证码的处理都是棘手的存在,在WEB应用中,大部分系统在用户登录的时候都要求用户输入验证码,且验证码的种类繁多,如纯数字、纯字母、汉子组合、数学题运算、滑动图标、图片、短信、邮箱、语音等。既然要实现验证码的处......
  • 使用 Python WebSSH 从浏览器连接到SSH终端
    IntroductionOrdinarily,youconnecttoanSSHserverusingacommandlineappinaterminal,orterminalemulatorsoftwarethatincludesanSSHclient.Sometools,likePython’sWebSSH,makeitpossibletoconnectoverSSHandrunaterminaldirectlyin......
  • 内网使用postman测试websocket接口(无法登录的情况下)
    postman测试websocket接口。但是发现老版本的postman不支持websocket接口的测试。于是直接上最新版本postman。打开postman,new,选择websocket。发现选不了,提示:youneedtobeinaworkspacetoperformthisaction.然后我去工作台,发现强制要登录!!!但是问题在于:我这公司电脑不......