Java Selenium如何使用sendkeys上傳文件
下載和安裝AutoIt
檔案上傳是自動化中棘手的部分,目前selenium並沒有提供上傳的實作api,所以知道藉助外力來完成,例如AutoIt、sikuli。
AutoIt , 這是一個使用類似BASIC腳本語言的免費軟體,它設計用於Windows GUI(圖形使用者介面)的自動化操作,利用模擬鍵盤按鍵,滑鼠移動和視窗/控制項的組合來實現自動化任務;
1.開啟AutoIt的官網下載
#兩種下載方法都可以,這裡我想下載的是zip,解壓縮出如下圖所示:
點擊SciTe資料夾,我們開啟腳本編輯器。
開啟百度圖片上傳窗口,開啟AutoIt Windows Info 工具,滑鼠移到Finder Tool,按住滑鼠左鍵拖曳到需要辨識的windows控制項上。拖曳元素定位器上那個靶點形狀按鈕到檔案上傳彈窗,能夠捕捉到一些元素資訊。用滑鼠拖曳工具上的Finder Tool的圖示(即圖中藍色圈圈部分)到要辨識的控制項上,控制項的唯一識別資訊會顯示在工具的左側部分(圖中紅框標示的部分)。從顯示的結果得知,此控制項的Title=“開啟”,Class為Edit,Instance=1。我們就是利用控制項的這些信息,定位控件,編寫腳本。
打開編輯器,根據控制項Finder Tool識別到的信息來調用函數編寫腳本;在AutoIt腳本編輯器裡輸入如下腳本,不要下面我寫的備註哈。
我們這裡需要知道有以下資訊:
1.操作頁面的title,用於固定操作的頁面。
2.需要填入的訊息,在輸入框中填入「上傳檔案的路徑及檔案名稱」(windows動作)
3.點選「開啟」按鈕,實作檔案上傳。
根據上述所辨識的控制項訊息,利用編輯器SciTE Script Editor,依照AutoIT的語法編寫腳本。
實作檔案上傳所需的幾個方法:
ControlFocus ( "窗口标题", "窗口文本", 控件ID) ---->设置输入焦点到指定窗口的某个控件上(即:控件ID“文件名”输入框的id) WinWait ( "窗口标题" [, "窗口文本" [, 超时时间]] ) ---->暂停脚本的执行直至指定窗口存在(出现)为止 ControlSetText ( "窗口标题", "窗口文本", 控件ID, "新文本" ) ---->修改指定控件的文本(即:控件ID“文件名”输入框的id) Sleep ( 延迟 ) ---->使脚本暂停指定时间段 ControlClick ( "窗口标题", "窗口文本", 控件ID [, 按钮] [, 点击次数]] ) ---->向指定控件发送鼠标点击命令(即:控件ID“打开”按钮的id)
其中,title即AutoIt Window Info辨識出的Title字段,controlID即AutoIt Window Info辨識出的Class和Instance的拼接,如上圖拼接後的結果應為:Button1(即classnameNN)
ControlFocus(("title","text",controllD)用于识别windows文件上传窗口 ControlFocus("打开","","")向文件名输入框输入本地要上传文件的路径 ControlSetText("打开","","Edit1","C:\Users\DELL\Desktop\test\upload\北京宏哥.jpeg") Sleep(2000)点击上传窗口中的“打开“按钮 ControlClick("打开","","Button1")
儲存腳本檔案為ChromFileUpload.au3格式,然後在AutoIt腳本編輯器中點選Tools選單,tools =>go,執行腳本驗證(前提是windows視窗必須是開啟狀態),驗證成功,如下圖所示:
為了這個腳本能被java 程式呼叫,需要透過Compile Script to .exe (x64)工具產生exe檔(這個是透過.exe安裝包安裝的AutoIt)
AutoIt腳本編輯器中點選Tools選單,選擇compile,會在同路徑下產生一個.exe的檔案(這個是透過解壓縮包安裝的AutoIt)
提示Conversion complete轉換完成:將ChromeFileUpload.exe拷貝到專案下,待會在Selenium腳本要使用。
java程式碼
//实现文件上传。通过Runtime的静态方法获取Runtime对象 Runtime runtime = Runtime.getRuntime(); //通过Runtime对象调用exe方法 runtime.exec("C:\Users\DELL\Desktop\test\upload\ChromeFileUpload.exe");
以上是Java Selenium如何使用sendkeys上傳文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

膠囊是一種三維幾何圖形,由一個圓柱體和兩端各一個半球體組成。膠囊的體積可以通過將圓柱體的體積和兩端半球體的體積相加來計算。本教程將討論如何使用不同的方法在Java中計算給定膠囊的體積。 膠囊體積公式 膠囊體積的公式如下: 膠囊體積 = 圓柱體體積 兩個半球體體積 其中, r: 半球體的半徑。 h: 圓柱體的高度(不包括半球體)。 例子 1 輸入 半徑 = 5 單位 高度 = 10 單位 輸出 體積 = 1570.8 立方單位 解釋 使用公式計算體積: 體積 = π × r2 × h (4

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。
