Selenium+java - 借助autolt完成上传文件操作
寫在前面:
上傳文件是每個自動化測試同學會遇到,而且可以說是面試必考的問題,標準控件我們一般用sendkeys()就能完成上傳,但是我們的測試網站的上傳控件一般為自己封裝的,用傳統的上傳已經不好用了,也就是說用selenium的APi已經無法完成上傳操作了,這時我們就要借用第三方工具Autolt來完成上傳文件的操作。
準備工作
1、下載autolt
官網:https://www.autoitscript.com/site/autoit/downloads/,請自行下載
也可以百度下載綠色版,免安裝,筆者就是綠色版,下面案例都以綠色版進行講解
附百度網盤:鏈接: https://pan.baidu.com/s/1szmGK7wudsXKkH5xkEOnOQ 提取碼: dysb?
2、下載后解壓到指定目錄
3、被測網頁HTML代碼如下
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>上傳文件演示案例</title> </head> <body><div class="row-fluid"><div class="span6 well"><h3>upload File</h3><input id="upload" type="file" name="file" /></div></div> </body> </html>編寫上傳腳本
- 找到解壓目錄,雙擊AU3TOOL.exe,打開界面是寫腳本用的
- 雙擊Au3Info.exe,打開定位工具界面
-
在文件中輸入以下代碼:注意括號內的參數 ,下一步中會講如何獲取參數
獲取上一步中(前3行代碼)中的參數
- 接下來是,最后一行代碼中的title和button1
生成可執行程序
?選擇工具-->編譯腳本
生成可執行文件如下:
自動化測試腳本調用upload.exe完成上傳
具體代碼如下:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test;import java.io.IOException;/*** @author rongrong* 上傳文件演示案例*/ public class TestUpload {WebDriver driver;@BeforeClasspublic void beforeClass() {System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");driver = new ChromeDriver();}@Testpublic void testUpload() {driver.get("file:///C:/Users/Administrator/Desktop/index.html");driver.manage().window().maximize();//選擇文件driver.findElement(By.id("upload")).click();try {Runtime.getRuntime().exec("upload.exe");} catch (IOException e) {e.printStackTrace();}}@AfterClasspublic void afterClass() {driver.quit();}}效果如下:
?
到此使用自動化調用autolt上傳文件的案例演示結束,可能很多同學會糾結autolt語法不會寫啥的,大可不必糾結,基本寫完是一勞永逸的,不會在維護了,更多autolt的用法,有興趣的同學可以自行去官網查看了解。
?
轉載于:https://www.cnblogs.com/longronglang/p/11312140.html
總結
以上是生活随笔為你收集整理的Selenium+java - 借助autolt完成上传文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django中过滤的实现
- 下一篇: 关于在hdfs上对数据创建外部表的原因