Holmos自动化测试入门学习(七)---------文件上传

本文介绍了使用Holmos工具自动化实现文件上传操作的方法,包括如何使用其提供的静态方法upLoad来上传文件,并通过实例展示了如何在发送邮件时添加附件。
一说到自动化实现文件按上传操作,也许很多人就头疼。
Holmos在HolmosWindow类下提供了2个非常简单的静态方法如下:
1.upLoad(java.lang.String windowTitle,java.lang.String localFilePath)
需要传入2个参数,WindowTitle表示点击上传弹出窗口的名字(如下图画红圈处);localFilePath表示文件的路径,该文件必须存在。

2.upLoad(java.lang.String localFilePath)     这个方法默认窗口的title为“文件上传”


下面直接看个QQ邮箱发邮件添加附件例子:

新建个Page类(这里我们只测试个上传所以我们就把所有需要操作的元素都放一个类文件里面,平时测试建议还是一个页面一个类文件,方便管理)我们就取名为QQmail,具体代码如下:
import com.holmos.webtest.element.Button;
import com.holmos.webtest.struct.Frame;
import com.holmos.webtest.struct.Page;

public class QQmail extends Page {
	public QQmail() {
		super();
		this.comment = "QQ邮箱页面";
		init();
	}

	/**
	 * 登陆页面
	 * 
	 * 我们默认为本地已经登陆了QQ客户端只需点击快速登陆变可以登陆成功所以我们只定位快速登陆按钮
	 * 
	 * 通过Html查看我们发现按钮是在iFrame里面,所以我们得先定位iFrame,再定位iFrame里面的元素
	 * 
	 * 关于iFrame内元素定位方法,可以查看之前写的《iFrame里面元素的定位》
	 */

	// 先定位Frame
	public iFrameLogin frame_login = new iFrameLogin("iframe");
	{
		frame_login.addIDlocator("xui");// frame通过ID定位
	}

	// 定位Frame里面的元素
	public class iFrameLogin extends Frame {
		public iFrameLogin(String comment) {
			super(comment);
		}

		public Button login_BT = new Button("快速登陆");
		{
			login_BT.addIDLocator("loginbtn");// 采用ID定位快速登陆按钮
		}
	}

	/**
	 * 下面对”写信“按钮定位
	 */
	public Button writeMail_BT = new Button("写信");

	{
		writeMail_BT.addIDLocator("composebtn");// 写信按钮用ID定位方式

	}

	/**
	 * 通过对原码观察我们发现添加附件按钮也在一个ID明为mainFrame的iframe内,同样进行而外处理
	 */
	// 先定位Frame
	public mainFrame frame_main = new mainFrame("Mainiframe");
	{
		frame_main.addIDlocator("mainFrame");// frame通过ID定位
	}

	// 定位Frame里面的元素
	public class mainFrame extends Frame {
		public mainFrame(String comment) {
			super(comment);
		}

		public Button addAttachment_BT = new Button("添加附件");
		{
			addAttachment_BT.addXpathLocator("html/body/form[2]/div[3]/div[4]/span[2]/span[1]/span/span[1]/embed");
		}
	}
}

2.新建个Test类,我这里就命名为QQmain_Test,详细代码如下:
import org.junit.Test;

import com.holmos.webtest.EngineType;
import com.holmos.webtest.utils.HolmosBaseUtils;
import com.holmos.webtest.utils.HolmosWindow;

public class QQmail_Test {
	public QQmail mail = new QQmail();

	@Test
	public void writeMail() {
		HolmosWindow.openNewWindow(EngineType.WebDriverChrome, "http://mail.qq.com");// 用chrome打开QQ邮箱登陆页
		mail.frame_login.select();// 把控制权交与登陆的iFrame
		mail.frame_login.login_BT.clickAndWaitForLoad();// 点击快速登陆按钮
		mail.frame_login.selectTopPage();// 控制权交还个最上层页面
		mail.writeMail_BT.click();// 点击写信按钮
		HolmosBaseUtils.sleep(3000);// 等待3秒钟加载,如果网络慢可适当延长等待时间
		mail.frame_main.select();// 把控制权交与mainFrame
		mail.frame_main.addAttachment_BT.click();// 点击添加附录
		HolmosWindow.upLoad("打开", "D:\\huangshijin\\Pictures\\壁纸纯色.jpg");// chrome打开的title为”打开“,不同浏览器可能不用,并传入上传文件的地址
		mail.frame_main.selectTopPage();// 把控制权交还给最上层页面
	}
}

3.运行结果,直接可以看到如下图:

OK 搞定,写完发现写这个上传的例子可以顺便把iFrame的用法也好好熟悉下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值