Playwright 系列(15):如何写下载的用例

简介: Playwright 系列(15):如何写下载的用例

大家好,我是阿萨。 Web 页面测试过程中下载非常常见。那如何写下载的测试用例呢?对于每一个由页面下载的附件,page.on("download")事件都会被触发出来。所有这些附件都被下载到一个临时文件夹中。你可以使用事件中的Download对象获得下载的URL、文件系统路径和有效载荷流。

你可以使用browser_type.launch()中的downloads_path选项来指定下载文件的保存位置。

注意
当产生这些文件的浏览器上下文关闭时,下载的文件会被删除。

这里是处理文件下载的最简单方法。

同步:


# 开始等待下载with page.expect_download() as download_info:# 执行启动下载的动作    page.get_by_text("Download file").click()# 等待下载开始download = download_info.value# 等待下载过程的完成print(download.path())# 将下载的文件保存在某处download.save_as("/path/to/save/download/at.txt")

异步:


# 开始等待下载async with page.expect_download() as download_info:# 执行启动下载的动作await page.get_by_text("Download file").click()download = await download_info.value# 等待下载过程的完成print(await download.path())# 将下载的文件保存在某处download.save_as("/path/to/save/download/at.txt")

如果你不知道是什么启动了下载,你仍然可以处理这个事件。

同步:


page.on("download", lambda download: print(download.path()))

异步


async def handle_download(download):print(await download.path())page.on("download", handle_download)



请注意,处理事件会分叉控制流,使脚本更难阅读。所以最好是下载结束,当前用例就结束,不要添加更多逻辑。

相关文章
|
2月前
|
测试技术 Shell API
Playwright系列(3):运行测试用例
Playwright系列(3):运行测试用例
104 1
|
2月前
|
IDE 测试技术 开发工具
从零开始:使用 Playwright 脚本录制实现自动化测试
Playwright提供了一种便捷的脚本录制功能,类似于Selenium IDE。通过运行`playwright codegen`命令,你可以启动一个浏览器并记录你的操作,生成Python或异步代码。在示例中,展示了如何录制登录百度的过程,生成的代码可以直接用于自动化测试。Playwright Inspector允许你编辑和转换测试代码,支持生成Pytest格式的测试用例,方便Python开发者使用。这个功能使Playwright成为强大的Web自动化测试工具。
52 3
|
2月前
|
Web App开发 测试技术 C++
Playwright安装与Python集成:探索跨浏览器测试的奇妙世界
Playwright是新兴的跨浏览器测试工具,相比Selenium,它支持Chrome、Firefox、WebKit,执行速度快,选择器更稳定。安装Playwright只需一条`pip install playwright`的命令,随后的`playwright install`会自动添加浏览器,无需处理浏览器驱动问题。这一优势免去了Selenium中匹配驱动的烦恼。文章适合寻求高效自动化测试解决方案的开发者。
33 2
|
2月前
|
Web App开发 前端开发 测试技术
【如何学习Python自动化测试】—— 页面元素定位
【如何学习Python自动化测试】—— 页面元素定位
24 1
|
2月前
|
测试技术
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本
|
2月前
|
测试技术
Playwright 系列(16):如何写上传的用例?
Playwright 系列(16):如何写上传的用例?
|
2月前
|
测试技术
Playwright 系列(14):如何写对话框的用例
Playwright 系列(14):如何写对话框的用例
|
测试技术 API
软件测试|web测试神器playwright简单使用
软件测试|web测试神器playwright简单使用
578 0
软件测试|web测试神器playwright简单使用
|
存储 编解码 JSON
基于Unittest框架,使用Python+Selenium+Webdriver的WebUI自动化测试项目应用实例(附源码)
基于Unittest框架,使用Python+Selenium+Webdriver的WebUI自动化测试项目应用实例(附源码)
235 0
基于Unittest框架,使用Python+Selenium+Webdriver的WebUI自动化测试项目应用实例(附源码)
【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase
【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase
【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase