本指南將以簡單的方式向您展示如何使用Autoit Step by Step指南在Selenium Webdriver中上傳文件。
雖然自動化Web的應用程序很多時候你會得到基于窗口的活動喜歡-文件上傳,文件下載彈出堕澄,窗口認證的安全網(wǎng)站等酌摇。
在這種情況下诺凡,Selenium將失敗并且無法處理桌面元素以避免這種情況把介,我們將使用AutoIT腳本來處理桌面或Windows元素,并將AutoIT腳本與我們的Selenium代碼結(jié)合起來铲敛。
AutoIt 工具介紹:
AutoIt是免費的自動化工具,可以與桌面應用程序一起工作会钝。
它使用擊鍵伐蒋,鼠標移動和窗口/控制操作的組合,以使用其他語言(例如VBScript和SendKeys)不可能或不可靠的方式自動執(zhí)行任務(wù)迁酸。
有關(guān)AutoIT的更多信息先鱼,請訪問官方網(wǎng)站 AutoIt官??方網(wǎng)站
一、 首先從下載開始
第1步 · 導航到AutoIt官??方網(wǎng)站 https://www.autoitscript.com/site/autoit/downloads/ 并進入下載部分或點擊此處下載AutoIt
第2步 · 點擊下載AutoIt并安裝
第3步 · 點擊下載編輯器并安裝奸鬓。
第4步 · 一旦安裝在您的機器檢查所有安裝正確焙畔。
注 - 通常,如果不更改它串远,它將轉(zhuǎn)到C:\ Program Files \ AutoIt3位置
第5步 · 打開SCiTE文件夾并點擊SciTE宏多,這將打開AutoIt編輯器
一旦完成安裝讓我們看看我們?nèi)绾尉帉懩_本
使用Autoit在Selenium Webdriver中上傳文件
- 要使用Autoit在Selenium Webdriver中上傳文件,我們需要注意一些步驟澡罚,讓我們開始吧
- 要在Selenium Webdriver中上傳文件伸但,我們將創(chuàng)建AutoIT腳本,它將處理文件上傳的窗口留搔,然后我們將Selenium腳本與AutoIt腳本結(jié)合起來
第1步 · 打開編輯器和查找工具
查找工具 Au3Info.exe
編譯器 SciTE.exe
第2步 · 我們需要編寫腳本來上傳文件更胖,因此我們將使用AutoIt的一些方法。每種方法都有一些自己的功能
- ControlFocus - 這將使窗口焦點
- ControlSetText - 這將設(shè)置文件路徑
- ControlClick - 這將點擊按鈕
1. 點擊瀏覽按鈕隔显,一個新的窗口將打開現(xiàn)在開放的查找工具却妨,并點擊查找工具,并拖動到文件名荣月,如下圖所示管呵。
2. 這將給出關(guān)于該窗口和文件名段信息的所有細節(jié); 我們將只使用一些屬性,如窗口標題哺窄,類和實例
打開AutoIt編輯器和寫腳本
在ControlClick方法中捐下,我們將提供打開按鈕的控件ID
第3步 · 將腳本保存到具有某個唯一名稱的特定位置账锹。
-
注: 默認情況下,腳本將被保存為.au3擴展名
第4步 · 現(xiàn)在編譯腳本坷襟,以便編譯右鍵單擊文件并選擇編譯腳本奸柬,這將生成文件的.exe文件。
第5步 ·現(xiàn)在編寫Selenium程序并添加此.exe文件并運行您的程序
package demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class DemoFileUpload {
public static void main(String[] args) throws Exception {
// This will open Firefox browser
WebDriver driver=new FirefoxDriver();
// This will maximize browser to full screen
driver.manage().window().maximize();
// This will open respective URL
driver.get("your application url");
// This will click on Upload button
driver.findElement(By.xpath("http://*[@type='file']")).click();
// This will invoke AutoIT script here give the path of the script
//and this will throw IO exception so u can use throw or try catch
// In my case I am using throws
Runtime.getRuntime().exec("C:\\Users\\mukesh_otwani\\Desktop\\AutoItScripts\\blogUpload.exe");
// Once you will run this program AutoIt script will be invoked and respective f//ile will be attached
}
}