WebDriver 与Autoit结合完成文件上传

1. 编写一个VB脚本,并使用Autoit工具将其编译为.exe文件。

脚本内容为:

Dim $filePath = "C:\2.jpg"
Dim $dialogTitle = "打开"
WinActivate($dialogTitle)
WinWaitActive($dialogTitle)
Sleep(1*1000)
ControlSetText($dialogTitle,"","Edit1",$filePath)
ControlClick($dialogTitle,"","Button1")
Sleep(1*1000)


2. 编写一个java文件测试一下吧。

public class Upload {
	WebDriver driver = null;

	@BeforeTest
	public void beforeTest() {
		//Chrome浏览器
		System.setProperty("webdriver.chrome.driver", "./plugin/driver/chromedriver.exe");
		driver = new ChromeDriver();
		
		//IE浏览器
		/*System.setProperty("webdriver.ie.driver", "./plugin/driver/IEDriverServer.exe");
		DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
		ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
		driver = new InternetExplorerDriver(ieCapabilities);*/
	}

	@Test
	public void autoIT_Upload() throws InterruptedException {
		driver.get("file:///D:/demo.html");
		//定位“选择文件”按钮
		WebElement loadBtn = driver.findElement(By.id("load"));
		//点击该按钮,打开选择文件的Windows弹窗
		loadBtn.click();
		//指定脚本文件的位置
		String path = "D:/upload.exe";
		execShell(path);
		Thread.sleep(6000);
	}

	@AfterTest
	public void afterTest() {
		if(driver != null)
			driver.close();
	}
	
	//定义一个工具类,执行Autoit的脚本文件
	
	public static void execShell(String path){
		Runtime r = Runtime.getRuntime();
		try {
			r.exec(path);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
如果只是想试试VB脚本是不是正确,就不用写java文件了。直接打开Windows的画板,点“文件>打开”,然后去执行那个exe文件,如果图片在画板里打开了,就说明脚本没有问题。

Give it a try! Good Luck!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值