当前位置:网站首页>RobotFramework 之 文件上传和下载
RobotFramework 之 文件上传和下载
2022-04-23 14:03:00 【沉觞流年】
在项目过程中,经常会遇到文件的上传和下载类型的操作,网上也可以找到各种方式,这里介绍的是RobotFramework
框架在UI自动化
过程中的文件上传和下载
文件上传
RobotFramework
框架Selenium2Library
库中有一个choose file
关键字,可进行文件的上传操作
语法:
choose file 上传按钮元素定位 文件路径
这里依旧以邮箱上传文件为例。对于在网页上操作,可以通过 selenium IDE(安装) 录制脚本,节省自己去定位元素的时间。
这里上传文件的按钮,其实是绑定到 input
属性上了
test.robot
*** Settings ***
Library Selenium2Library
Suite Setup 登录网易邮箱
Suite Teardown 关闭浏览器
*** Keywords ***
登录网易邮箱
open browser https://mail.163.com/ chrome
sleep 5
maximize browser window
# 切换到iframe
select frame xpath=//iframe[contains(@id,'iframe')]
# 用户名输入框中输入 用户名
sleep 2
input text xpath=//*[@name="email"] 你的账号
sleep 2
# 密码输入框中输入 密码
input text xpath=//*[@name="password"] 你的密码
sleep 2
# 点击登录按钮
click element xpath=//*[@id="dologin"]
sleep 5
关闭浏览器
close browser
*** Test Cases ***
测试上传文件
click element xpath=//span[contains(.,'写 信')]
sleep 5
choose file xpath=//input[@type='file'] F:/RFstudy/filepath/upload/1.jpg
sleep 10
文件上传需要时间,所以等待时间尽量设置长一点,避免因网络原因造成文件上传失败
文件下载
文件下载比较简单,页面上通常都会有下载按钮,只需要点击下载按钮就行了
Chrome浏览器下载文件可以不用弹出弹框,在浏览器中设置一下即可(好像默认通过驱动文件控制浏览器下载文件就不会有弹框)文件会默认下载到C:\Users\Admin\Downloads
目录下
test.robot
*** Settings ***
Library Selenium2Library
Suite Setup 登录网易邮箱
Suite Teardown 关闭浏览器
*** Keywords ***
登录网易邮箱
open browser https://mail.163.com/ chrome
sleep 5
maximize browser window
# 切换到iframe
select frame xpath=//iframe[contains(@id,'iframe')]
# 用户名输入框中输入 用户名
sleep 2
input text xpath=//*[@name="email"] 你的账号
sleep 2
# 密码输入框中输入 密码
input text xpath=//*[@name="password"] 你的密码
sleep 2
# 点击登录按钮
click element xpath=//*[@id="dologin"]
sleep 5
关闭浏览器
close browser
*** Test Cases ***
测试下载文件
click element xpath=//span[contains(.,'收 信')]
sleep 2
click element xpath=//div[4]/div[2]/div/div[2]/span
sleep 2
click element xpath=//a[contains(text(),'查看附件')]
sleep 2
click element xpath=//td/div/img
sleep 2
click element xpath=//a[contains(text(),'下载')]
sleep 10
如果需要指定下载到对应的目录下,就需要在打开浏览器访问网址前,加载相应的配置
这里可以对登录这个关键字进行修改,每次登录,都可以传入一个参数(文件下载目录);也可以不用传,默认给定一个下载的目录,不下载文件,登录功能也可继续使用
test.robot
*** Keywords ***
登录网易邮箱并指定文件下载目录
[Arguments] ${
文件下载目录}=${
默认下载目录}
${
options} evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys,selenium.webdriver
${
prefs} create dictionary download.default_directory ${
文件下载目录} #指定下载文件的目录
call method ${
options} add_experimental_option prefs ${
prefs}
create webdriver Chrome chrome_options=${
options}
open browser https://mail.163.com/ chrome
sleep 5
maximize browser window
# 切换到iframe
select frame xpath=//iframe[contains(@id,'iframe')]
# 用户名输入框中输入 用户名
sleep 2
input text xpath=//*[@name="email"] 你的账号
sleep 2
# 密码输入框中输入 密码
input text xpath=//*[@name="password"] 你的密码
sleep 2
# 点击登录按钮
click element xpath=//*[@id="dologin"]
sleep 5
版权声明
本文为[沉觞流年]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_44614026/article/details/115601408
边栏推荐
猜你喜欢
随机推荐
CDH cluster integration Phoenix based on CM management
变长参数__VA_ARGS__ 和 写日志的宏定义
Windos中安装labellmg教程
多重继承虚基类习题
Quartus Prime硬件实验开发(DE2-115板)实验一CPU指令运算器设计
JS force deduction brush question 102 Sequence traversal of binary tree
Chapter 15 new technologies of software engineering
微信小程序进行蓝牙初始化、搜索附近蓝牙设备及连接指定蓝牙(一)
微信小程序的订阅号开发(消息推送)
leetcode--380. O (1) time insertion, deletion and acquisition of random elements
Kettle -- control parsing
生成随机高质量符合高斯分布的随机数
烟雾传感器(mq-2)使用详细教程(基于树莓派3b+实现)
JS 力扣刷题 102. 二叉树的层序遍历
linux MySQL数据定时dump
趣谈网络协议
leetcode--977. Squares of a Sorted Array
Port occupied 1
Quartus prime hardware experimental development (de2-115 board) experiment II function adjustable comprehensive timer design
Decentralized Collaborative Learning Framework for Next POI Recommendation