软件测试

您所在的位置:网站首页 js脚本运行后无法点击手机屏幕 软件测试

软件测试

2023-06-12 16:25| 来源: 网络整理| 查看: 265

在这里插入图片描述

前言

使用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的一大优势。

更多技术文章



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3