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

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

时间:2023-08-07 18:23:35浏览次数:35  
标签:web playwright title 切换 context 页面 page 软件测试

在这里插入图片描述

前言

使用selenium进行web自动化测试,如果我们打开了多个网页,进行网页切换时,我们需要先获取各个页面的句柄,通过句柄来区分各个页面,然后使用switch_to.window()实现切换,这样的操作比较麻烦,playwright的网页切换比selenium更为简单快捷。本文就给大家介绍一下playwright多个网页的切换方法。

多页面场景

我们以访问百度为例,百度首页有多个选项,新闻,hao123网址导航,贴吧等多个选项,我们点击不同的选项,就会打开不同的新标签页,如下图:

在这里插入图片描述

我们可以通过脚本,输出百度首页各页面的标题,代码如下:

from playwright.sync_api import sync_playwright

with sync_playwright() as playwright:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('https://www.baidu.com')

    # 点开多个标签页
    for link in page.locator('#s-top-left>a').all():
        link.click()
	# 遍历page对象
    for i in context.pages:
        print(i.title())

运行脚本,结果如下:

百度一下,你就知道
hao123_上网从这里开始
百度地图
百度新闻——海量中文资讯平台
百度贴吧——全球领先的中文社区
好看视频--轻松有收获

title切换页面

playwright可以直接通过页面标题来切换页面,我们可以写一个函数来切换页面,代码如下:

from playwright.sync_api import sync_playwright

def switch_to_page(context, title=None, url=None):
    """切换到指定title 名称 或 url 的 标签页"""
    for item_page in context.pages:
        if title:
            if title in item_page.title():
                # 激活当前选项卡
                item_page.bring_to_front()
                return item_page
        elif url:
            if url in item_page.url:
                # 激活当前选项卡
                item_page.bring_to_front()
                return item_page
    else:
        print("not found title or url")
    return context.pages[0]


with sync_playwright() as playwright:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('https://www.baidu.com')

    # 点开多个标签页
    for link in page.locator('#s-top-left>a').all():
        link.click()


    # 打开多个tab 标签页, 切换
    page1 = switch_to_page(context, title='贴吧')
    
    print(page1.title())

运行脚本,界面如下图:

在这里插入图片描述

总结

本文主要介绍了playwright的页面切换,playwright切换页面不需要获取页面句柄,实现比selenium简单许多,是playwright对于selenium的一大优势。

标签:web,playwright,title,切换,context,页面,page,软件测试
From: https://www.cnblogs.com/hogwarts/p/17612153.html

相关文章

  • 软件测试|JMeter 参数化的方式有哪些
    JMeter中常见的参数化方式包括:CSV数据文件:从CSV文件中读取数据,并将其用于请求参数。数据库访问:从数据库中读取数据,并将其用于请求参数。用户定义的变量:手动定义变量值,并将其用于请求参数。随机变量:随机生成变量值,并将其用于请求参数。Counter:生成一个递增的计数器,并将其......
  • 软件测试|web自动化测试神器playwright教程(二十八)
    前言在我们使用部分网站的时候,我们会遇到进行日期选择的问题,比如我们预定火车票或者预定酒店,需要选择发车日期或者酒店的入住与退房时间。我们执行自动化测试遇到日期控件时,如果可以输入,可以使用selenium的send_keys()方法进行输入,playwright同样也可以实现对日期控件的操作,本文......
  • 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%............