AutoIT结合Selenium Webdriver进行文件上传

1.  AutoIT 是一个免费软件,一种免费脚本语言,主要用于设计 windows GUI 自动化和一般脚本。它使用了鼠标、键盘和窗口等操作完成 selenium webdriver 不可能完成的任务,如文件上传。

2. 下载并安装 AutoIT

 

 

  • 安装则按提示一步步进行

3. Au3Info.exe(Element Identifier)查找元素

  • Au3Info.exe 路径:D:\Download\Install\AutoIt3(由自己安装路径决定)
  • 打开 Au3Info.exe ,若想查找元素,将"Finder Tool" 拖动到指定元素位置即可获取该元素属性

4. SciTE.exe(AutoIT editor)编写脚本

  • SciTE.exe 路径:D:\Download\Install\AutoIt3\SciTE(由自己安装路径决定)
  • 打开 SciTE.exe ,由元素属性而编写文件上传脚本的方法如下:

  • 保存文件,文件名为 FileUpload, 保存类型为 AutoIt(au3),保存后文件为 FileUpload.au3,此时不能直接运行该脚本,须编译(右击该脚本,如果电脑为32位选”Compile Script (x86)",电脑为64位则选“Compile Script (x64)"),本人电脑为64位,编译后文件为 FileUpload.exe,现在可以在Selenium webdriver script中使用该文件 FileUpload.exe。

5. Selinum script 调用 AutoIT script ( FileUpload.exe )

    Runtime.getRuntime().exec("C:\\Users\\yoyo\Desktop\\FileUpload.exe");

6. 完整 Selinum script 代码

package practise;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import java.io.IOException;
import java.util.List;

public class FileUpload {
@FindBy(xpath="//*[@id='upload']")
List<WebElement> browseLink;

@FindBy(xpath="//*[@id='uploadOptionType']/div/div/div/form/fieldset/div/div[1]/div")
List<WebElement> chooseFirstOption;

@FindBy(xpath="//*[@id='StartUploadBtn']/span")
List<WebElement> continueButton;

@FindBy(xpath="//*[@id='upload-documents']")
List<WebElement> browseLink1;

public static void main(String[] args)throws InterruptedException,IOException{
System.setProperty("webdriver.chrome.driver", "D:\\SpringWeb\\src\\main\\resources\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://insurance-dev.hsbc.com.hk/documents-service/upload-document-pws");
driver.manage().window().maximize();
((JavascriptExecutor) driver).executeScript("window.scrollTo(0,400);");
FileUpload m = PageFactory.initElements(driver, FileUpload.class);
m.chooseFirstOption.get(0).click();
m.continueButton.get(0).click();
m.browseLink.get(0).click();
Runtime.getRuntime().exec("C:\\Users\\yoyo\\Desktop\\FileUpload.exe");
m.browseLink1.get(0).sendKeys("C:\\Users\\yoyo\\Desktop\\11.png");
m.browseLink1.get(0).sendKeys("C:\\Users\\yoyo\\Desktop\\22.png");
Thread.sleep(5000);
driver.close();
}
}

 

参考资料:https://www.guru99.com/use-autoit-selenium.html

 

posted @ 2021-04-15 22:52  meiyouyou  阅读(277)  评论(0编辑  收藏  举报