【playwright】新一代自动化测试神器playwright+python系列课程5_playwright_文件上传_标准文件上传功能

playwright_文件上传_标准文件上传功能

系统中都有文件的上传或下载功能,在做自动化测试时,实现自动化的文件上传和下载也是不可避免的,今天我们先来看一下如何实现自动化的文件上传。
在web系统中,文件上传功能有的是标准的上传文件功能,什么是标准的文件上传功能,我们来看下图的文件上传功能

在这里插入图片描述

在图中,选择文件按钮对应的html源码中标签为input,type=‘file’,这种元素就是标准的上传功能,这种标准功能上传文件是非常简单的,使用palywright中的set_input_files()方法即可。
使用方法:

Locator.set_input_files(文件上传路径)

使用过程就是先定位到选择文件按钮,然后调用
set_input_files()方法,传入上传文件路径就可以将文件添加到选择文件旁边的输入框中,点击上传按钮就可以实现文件上传了。

实践代码:

'''
# author: 测试-老姜   交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
'''


from playwright.sync_api import Playwright, sync_playwright, expect
playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False, args=['--start-maximized']) #默认无头模式,设置浏览器最大化
context = browser.new_context(no_viewport=True) # 创建上下文,相当浏览器于实例化,即打开浏览器
page = context.new_page() # 打开一个新标签页
page.goto("http://127.0.0.1:8080/oa/") # 打开网址
page.locator("input[name=\"loginId\"]").fill("sup")
password_input = page.locator("input[name=\"password\"]")
password_input.fill("s1234567")
page.get_by_role("button", name="登录").click()
page.wait_for_timeout(2000)
page.locator('text=新建事项').click()
page.frame_locator('#iframe_main').locator('text=添加附件').click()
page.wait_for_timeout(1000)
upload_frame = page.frame_locator('//*[contains(@src,"/oa/common/components/upload/upload.jsp?actionmethod=uploadDocAttach")]')
#添加要上传的文件
upload_frame.locator('//input[@type="file"]').set_input_files(r'D:\jyc\高新四小2022—2023学年第二学期“美德之星”登记表(1).doc')
page.wait_for_timeout(2000)
upload_frame.locator('#button_upload').click() # 点击上传按钮
page.wait_for_timeout(10000)

context.close()
browser.close()
playwright.stop()

在selenium框架下,这种标准文件上传功能可以定位到选择文件按钮元素,直接使用send_keys()将上传文件的路径添加到选择文件按钮所在的输入框,再点击上传按钮实现文件上传的,但是在playwright框架下,这种type=file的文件上传按钮是不支持的fill()的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值