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

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

时间:2023-08-07 18:22:57浏览次数:45  
标签:web playwright 控件 sync context browser page 软件测试

在这里插入图片描述

前言

在我们使用部分网站的时候,我们会遇到进行日期选择的问题,比如我们预定火车票或者预定酒店,需要选择发车日期或者酒店的入住与退房时间。我们执行自动化测试遇到日期控件时,如果可以输入,可以使用selenium的send_keys()方法进行输入,playwright同样也可以实现对日期控件的操作,本文我们就来介绍一下playwright的日期控件操作。

日历控件

我们常见的input标签的日历控件如下图所示:

在这里插入图片描述

页面网址:日期控件网址

如果我们想要选择2023年5月24日的日期,可以直接点击24,代码如下:

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("http://wyeditor.com/layui_demo/%E6%97%A5%E6%9C%9F%E5%92%8C%E6%97%B6%E9%97%B4%E7%BB%84%E4%BB%B6.html")
    page.locator("#LayEdit_267858").click()
    page.locator("#layui-laydate1").get_by_role("cell", name="24").click()

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

当然,我们也可以选择直接输入,直接输入的代码如下:

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("http://wyeditor.com/layui_demo/%E6%97%A5%E6%9C%9F%E5%92%8C%E6%97%B6%E9%97%B4%E7%BB%84%E4%BB%B6.html")
    page.locator("#LayEdit_267858").click()
    page.locator("#LayEdit_267858").fill("2023-05-31")
    page.locator("#LayEdit_267858").click()
    

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


with sync_playwright() as playwright:
    run(playwright)

read-only的日历控件处理

部分的日历控件是有read-only属性的,比如12306网站的日历控件,是不能直接输入内容的,我们要进行输入,就需要先将read-only属性移除,通常我们可以通过js命令先移除该属性。代码如下:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()



    page.goto('http://127.0.0.1:8000/users/userinfo/')

    # 去掉元素的readonly属性
    js1 = 'document.getElementById("birth_day").removeAttribute("readonly");'
    page.evaluate(js1)
    # 直接给输入框赋值
    js2 = 'document.getElementById("birth_day").value="1999-12-31";'
    page.evaluate(js2)

    page.pause()
    context.close()
    browser.close()

总结

本文主要介绍了playwright对日历控件的处理,playwright与selenium一样,支持对日历控件的操作,同时也可以使用js脚本实现对read-only属性的操作。

标签:web,playwright,控件,sync,context,browser,page,软件测试
From: https://www.cnblogs.com/hogwarts/p/17612159.html

相关文章

  • 10 web服务
    web服务有三个角色:服务请求者、服务提供者、服务注册中心(登记服务并对其接口进行描述)。服务注册中心通过UDDI协议进行对服务的查询和发布。服务注册中心相当于生活中的搜索引擎。发现服务使用UDDI协议描述服务用WSDL协议:WSDL就是webService接口对应的WSDL文件,该文件通过xml格......
  • 牧云·云原生安全平台使用手册:镜像/容器/Web资产清点
    牧云·云原生安全平台 是长亭牧云团队以开源社区为生态载体技术积累为驱动所打造的云原生安全平台。本文将介绍如何使用牧云·云原生安全平台进行镜像/容器/Web资产清点。首先,在我们进行下面 镜像/容器/Web资产清点前,我们需要先安装探针进行资产的采集工作。探针的安装包括本地......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台隐藏平台web页面不被访问的操作步骤
    LntonGBS国标视频云服务通过支持国标GB28181协议,实现了设备接入、实时监控直播、录像、语音对讲、云存储、告警、级联等功能。同时,它还支持将接入的视频流以多种格式(包括RTSP、RTMP、FLV、HLS、WebRTC)进行全终端、全平台分发,实现了无插件播放在Web浏览器、手机浏览器、微信端、PC客......
  • 阿里云: web如何直传oss & 常见问题
    阿里云:web如何直传oss&常见问题 如何使用input.Type=‘file‘拿到文件对象1、在页面中添加<inputtype="file"style="display:none"ref="input"@input="upload">在需要上传文件的地方增加<button@click="$refs.input.click()">......
  • 天翼云重磅升级边缘WAF能力,助力企业高效应对Web安全威胁!
    “2022年,网络高危漏洞数量同比增长了13%;Q2遭受攻击的API数量月均超过了25万;物联网的普及大大降低了DDoS的攻击成本,大流量攻击指数显著提升;恶意Bot流量仍在持续增长,2022年上半年Bot流量约占整体互联网流量的60%,平均每月达到110亿+,而其中具备恶意攻击性的Bot流量占比则高达46%............
  • 【软件测试学习】—软件测试的基本认识(一)
    【软件测试学习】—软件测试的基本认识(一)文章目录【软件测试学习】—软件测试的基本认识(一)一、什么是软件测试二、软件测试的目的三、测试的原则四、测试的标准五、测试的基本要求六、bug的由来七、测试的流程八、开发模式九、测试与开发的关系一、什么是软件测试总结起来就是:使......
  • 用Node.js搭建一个简单Web服务器
    Node.js是基于ChromeV8引擎的JavaScript运行时环境,它允许我们在服务器端运行JavaScript代码,这让我们可以用JavaScript构建Web服务器,处理请求和响应。我们一起探索了如何用Node.js搭建一个简单但强大的Web服务器!什么是Nodejs在搭建Web服务器之前,先让我们了解一下今天的主角Nodejs。......
  • 天翼云重磅升级边缘WAF能力,助力企业高效应对Web安全威胁!
    “2022年,网络高危漏洞数量同比增长了13%;Q2遭受攻击的API数量月均超过了25万;物联网的普及大大降低了DDoS的攻击成本,大流量攻击指数显著提升;恶意Bot流量仍在持续增长,2022年上半年Bot流量约占整体互联网流量的60%,平均每月达到110亿+,而其中具备恶意攻击性的Bot流量占比则高达46%............
  • 软件测试-Web端测试方法总结
    一、输入框1.字符型输入框1)输入框格式校验英文全角、英文半角、数字、空或者空格、特殊字符“……!@#¥%……&*({【《,。?、:;‘<>’》】})”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。知识点扩展:全角/半角全角:一个字符占用两个标准字符位置半角:一个......
  • web杂记(5)-js(1)
    目录undefinednullundefinedletx;undefinedtypeofx"undefined"lety=111;typeofy"number"typeofyy"undefined"nullletx=55;x;55lety=null;y;x+y;55x*y;0if(!y)console.log("false");falseif(y)cons......