Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件测试|web自动化测试神器playwright教程(二十七)

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

原创
作者头像
霍格沃兹测试开发Muller老师
发布于 2023-08-02 10:26:46
发布于 2023-08-02 10:26:46
44300
代码可运行
举报
运行总次数:0
代码可运行

前言

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

多页面场景

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

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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())

运行脚本,结果如下:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
百度一下,你就知道
hao123_上网从这里开始
百度地图
百度新闻——海量中文资讯平台
百度贴吧——全球领先的中文社区
好看视频--轻松有收获

title切换页面

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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的一大优势。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
软件测试|web自动化测试神器playwright教程(三十)
我们可以从表格结构中发现,table页面有这几个明显的标签:table、tr、th、td
霍格沃兹测试开发Muller老师
2023/08/03
4950
软件测试|web自动化测试神器playwright教程(二十九)
当我们打开有的网站,网站会请求权限,比如某些网站要进进行声音采集或者开启摄像头时,都会弹出一个权限请求框,如下图:
霍格沃兹测试开发Muller老师
2023/08/03
3840
软件测试|web自动化测试神器playwright教程(三十七)
Playwright是一个强大的自动化测试工具,可以与Python集成,用于测试Web应用程序和执行自动化任务。其中,highlight()方法是Playwright的一个有用功能,可以突出显示Web页面上的元素,方便调试和可视化操作。本文将介绍Playwright库中的highlight()方法,以及如何使用Python进行集成和应用。
霍格沃兹测试开发Muller老师
2023/08/20
4530
自动化测试工具-Playwright(快速上手)
一提到 UI 自动化测试工具,首要推荐的必属是 Selenium,其优势在于跨平台、跨语言、完全开源、对商业用户也没有任何限制、支持分布式、拥有成熟的社区与学习文档等,目前已经迭代更新到 4 版本。那么缺点也有,比如环境配置、加载效率低、运行速度慢等。
wangmcn
2022/07/26
3.1K0
自动化测试工具-Playwright(快速上手)
软件测试|web自动化测试神器playwright教程(二十八)
在我们使用部分网站的时候,我们会遇到进行日期选择的问题,比如我们预定火车票或者预定酒店,需要选择发车日期或者酒店的入住与退房时间。我们执行自动化测试遇到日期控件时,如果可以输入,可以使用selenium的send_keys()方法进行输入,playwright同样也可以实现对日期控件的操作,本文我们就来介绍一下playwright的日期控件操作。
霍格沃兹测试开发Muller老师
2023/08/02
4190
软件测试|web自动化测试神器playwright教程(六)
在web自动化测试的工作中,弹窗以及页面切换是我们比较头疼的问题,我们都是需要通过switch切换到弹窗或者页面上进行操作,再切换回到我们的原页面进行操作,这样的操作十分繁琐,我们需要去获取window_handle,作为切换页面的对象,playwright在这方面就有很大的优势。
霍格沃兹测试开发Muller老师
2023/03/30
1.5K0
软件测试|web自动化测试神器playwright教程(二十六)
我们使用selenium进行元素拖拽时,通常要使用ActionChains来实现drag_and_drop的操作,playwright同样可以实现元素的拖拽和释放的操作。
霍格沃兹测试开发Muller老师
2023/08/02
3450
《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本
各种自动化框架都会有脚本录制功能, playwright这么牛叉当然也不例外。很早之前的selenium、Jmeter工具,发展到每种浏览器都有对应的录制插件。今天我们就来看下微软自动化框架playwright是如何录制脚本的。很多小伙伴或者童鞋们会觉得奇怪,怎么现在才将录制生成脚本啊,要是早点讲解和分享,我还费什么劲,揪头发写代码啊。宏哥这里说一下:这么做的目的就是为了录制生成脚本打基础的。要不然开始直接上手就录制了,就算生成脚本你也不知道什么意思,更不用说脚本中有错误需要你调试修改脚本了。playwright 可以支持自动录制生成脚本,也就是说只需要在页面上点点点,就可以自动生成对应的脚本了。
北京-宏哥
2024/04/25
4580
《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本
《最新出炉》系列入门篇-Python+Playwright自动化测试-15-playwright处理浏览器多窗口切换
浏览器多窗口的切换问题相比大家不会陌生吧,之前宏哥在java+selenium系列文章中就有介绍过。大致步骤就是:使用selenium进行浏览器的多个窗口切换测试,如果我们打开了多个网页,进行网页切换时,我们需要先获取各个页面的句柄,通过句柄来区分各个页面,然后使用switch_to.window()实现切换,这样的操作比较麻烦,而且宏哥在介绍和讲解的时候,也写了好几篇相关的文章。反过来今天我们所学的playwright来处理浏览器多窗口切换却比selenium更为简单快捷。下边宏哥就给小伙伴们或者童鞋们介绍一下playwrigh如何处理浏览器多个窗口的切换方法。
北京-宏哥
2023/09/01
1.2K1
《最新出炉》系列入门篇-Python+Playwright自动化测试-15-playwright处理浏览器多窗口切换
软件测试|web自动化测试神器playwright教程(十二)
在日常工作中,我们经常是基于某个测试环境地址去测试某个项目,所以应该把它单独拿出来做为一个全局的配置。其他网址可以使用不同的后缀,只使用相对地址。
霍格沃兹测试开发Muller老师
2023/07/17
2670
《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇
上一篇中,主要是介绍了拖拽的各种方法的理论知识以及实践,今天宏哥讲解和分享一下划取字段操作。例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能。
北京-宏哥
2023/10/07
23.4K0
软件测试|web自动化测试神器playwright教程(二十三)
我们在进行web自动化时,经常遇到一些不好操作的元素,普通的元素定位和操作容易报错,如果我们使用的selenium的话,就可以使用selenium调用js脚本进行操作。在playwright 中也有类似的方法,使用page.evaluate()执行JavaScript脚本。
霍格沃兹测试开发Muller老师
2023/08/01
3880
软件测试|web自动化测试神器playwright教程(十八)
在我们的日常工作中,经常会遇到需要在页面上悬浮,才可以对部分内容进行点击的情况,如下图,我们需要先在设置处悬浮,才可以点击下方的各项设置项。
霍格沃兹测试开发Muller老师
2023/07/31
2320
软件测试|web自动化测试神器playwright教程(十三)
我们在工作中,会遇到需要使用不同的硬件设备测试兼容性的问题,尤其是现在手机型号,屏幕大小分辨率五花八门的,我们基本不可能全部机型都用真机测试一遍,playwright提供了模仿机型的功能,我们可以使用playwright来模拟设备。
霍格沃兹测试开发Muller老师
2023/07/17
3920
《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
在我们日常工作中或者生活中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,如下图页面,我们虽然在豆瓣首页,但是内容并不完整,如果我们想要直接点击电影模块中的选电影按钮,是需要往下滑动的。当页面超过屏幕的高度时候,需要滚动到元素出现的位置,让元素处于可视的窗口上才能去操作元素。
北京-宏哥
2024/05/26
2390
《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
微软自动化神器playwright
https://www.bilibili.com/video/BV14B4y1z7Ev
懿曲折扇情
2022/08/24
3.2K1
微软自动化神器playwright
软件测试|web自动化测试神器playwright教程(八)
selenium中提供了一个selenium IDE的工具用于脚本录制,我们通过插件市场安装之后,便可以将我们对浏览器页面的操作录制成脚本,并输出成java或Python等语言的脚本,我们可以通过生成的脚本再次回放我们的操作。
霍格沃兹测试开发Muller老师
2023/03/30
1.6K0
软件测试|web自动化测试神器playwright教程(七)
有时候我们需要通过屏幕截图来验证我们测试是否正常执行,selenium提供了截图的功能,我们可以截取当前整个屏幕的内容,playwright更加强大,除了截取当前屏幕,还可以截长图,也可以对某个元素截图。
霍格沃兹测试开发Muller老师
2023/03/30
8070
软件测试|web自动化测试神器playwright教程(九)
在我们编写web自动化测试脚本时,我们通常会使用浏览器自带的开发者工具去查找元素,但是也会存在我们在页面中能找到的元素,但是在运行脚本时,元素却找不到,这是日常的web自动化测试工作中,最让人头疼的问题。
霍格沃兹测试开发Muller老师
2023/03/30
8560
软件测试|web自动化测试神器playwright教程(二十四)
我们在使用selenium进行自动化测试的过程中,遇到输入框时,我们可以使用send_keys()输入内容,也可以使用键盘事件向输入框内输入内容,只是使用键盘事件时需要导入Keys,作为一款强大的工具,selenium有的功能,playwright也有,playwright同样可以使用键盘输入内容,本篇文章就来为大家介绍一下playwright的键盘事件。
霍格沃兹测试开发Muller老师
2023/08/01
3620
推荐阅读
相关推荐
软件测试|web自动化测试神器playwright教程(三十)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档