Selenium+java - 藉助autolt完成上傳文件操做

寫在前面:

上傳文件是每一個自動化測試同窗會遇到,並且能夠說是面試必考的問題,標準控件咱們通常用sendkeys()就能完成上傳,可是咱們的測試網站的上傳控件通常爲本身封裝的,用傳統的上傳已經很差用了,也就是說用selenium的APi已經沒法完成上傳操做了,這時咱們就要借用第三方工具Autolt來完成上傳文件的操做。html

準備工做

一、下載autoltjava

官網:https://www.autoitscript.com/site/autoit/downloads/,請自行下載web

也能夠百度下載綠色版,免安裝,筆者就是綠色版,下面案例都以綠色版進行講解面試

附百度網盤:連接: https://pan.baidu.com/s/1szmGK7wudsXKkH5xkEOnOQ 提取碼: dysb chrome

二、下載後解壓到指定目錄工具

三、被測網頁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,打開定位工具界面

  • 在文件中輸入如下代碼:注意括號內的參數 ,下一步中會講如何獲取參數網站

ControlFocus("title1","","Edit1");  WinWait("[CLASS:#32770]","",10); ControlSetText("title1","","Edit1","文件地址"); Sleep(2000); ControlClick("title2","","Button1");

獲取上一步中(前3行代碼)中的參數ui

  • 接下來是,最後一行代碼中的title和button1

生成可執行程序

 選擇工具-->編譯腳本spa

生成可執行文件以下:

自動化測試腳本調用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; @BeforeClass public void beforeClass() { System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe"); driver = new ChromeDriver(); } @Test public 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(); } } @AfterClass public void afterClass() { driver.quit(); } }

效果以下:

 

到此使用自動化調用autolt上傳文件的案例演示結束,可能不少同窗會糾結autolt語法不會寫啥的,大可沒必要糾結,基本寫完是一勞永逸的,不會在維護了,更多autolt的用法,有興趣的同窗能夠自行去官網查看了解。

相關文章
相關標籤/搜索