软件测试|web自动化测试神器playwright教程(二十一)
  X7HGjGJ7MG9G 2023年11月02日 61 0

前言

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

软件测试|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的方法来实现该功能。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  OK0d47OJKrH5   2023年11月02日   40   0   0 #includeide#define
  tCdZJQtjUpyw   2023年11月02日   49   0   0 vimide多继承
  5lnVz5j1fXe0   2023年11月02日   26   0   0 ideandroid官网
  zFuRQk3CQVR7   2023年11月02日   24   0   0 图像质量边缘增强ide
X7HGjGJ7MG9G
最新推荐 更多