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)



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

相关文章
|
8月前
|
测试技术 Shell API
Playwright系列(3):运行测试用例
Playwright系列(3):运行测试用例
233 1
|
测试技术 Python
Appium自动化框架从0到1之 执行测试用例& 生成测试报告&发送邮件
Appium自动化框架从0到1之 执行测试用例& 生成测试报告&发送邮件
189 1
|
4月前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
8月前
|
Web App开发 JavaScript 测试技术
【如何学习Python自动化测试】—— 警告框处理
【如何学习Python自动化测试】—— 警告框处理
|
8月前
|
运维 测试技术
实用指南:使用Pytest Allure测试框架添加用例失败截图
本文介绍了如何在使用`allure+pytest`进行软件测试时,通过`pytest_runtest_makereport`钩子函数自动捕获失败用例的截图。在`conftest.py`中定义钩子,当用例失败时,保存截图并附加到Allure测试报告中。测试代码示例展示了登录豆瓣的场景,测试失败时会自动生成截图。这种方法有助于快速理解和解决测试问题,提升测试效率和软件质量。
|
8月前
|
测试技术
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本
133 0
PlayWright系列(2):如何写测试脚本
|
8月前
|
测试技术
Playwright 系列(16):如何写上传的用例?
Playwright 系列(16):如何写上传的用例?
154 0
|
8月前
|
测试技术
Playwright 系列(14):如何写对话框的用例
Playwright 系列(14):如何写对话框的用例
144 0
|
自然语言处理 Java 测试技术
pytest学习和使用21-测试报告插件allure-pytest如何使用?
pytest学习和使用21-测试报告插件allure-pytest如何使用?
173 0
pytest学习和使用21-测试报告插件allure-pytest如何使用?
【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase
【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase
【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase