欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java selenium上傳文件的實(shí)現(xiàn)

 更新時(shí)間:2022年04月17日 16:46:52   作者:Q z1997  
本文主要介紹了Java selenium上傳文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

下載和安裝AutoIt

文件上傳是自動(dòng)化中棘手的部分,目前selenium并沒有提供上傳的實(shí)現(xiàn)api,所以知道借助外力來完成,如AutoIt、sikuli。

AutoIt , 這是一個(gè)使用類似BASIC腳本語言的免費(fèi)軟件,它設(shè)計(jì)用于Windows GUI(圖形用戶界面)的自動(dòng)化操作,利用模擬鍵盤按鍵,鼠標(biāo)移動(dòng)和窗口/控件的組合來實(shí)現(xiàn)自動(dòng)化任務(wù);

1.打開AutoIt的官網(wǎng)下載

AutoIt下載鏈接:https://www.autoitscript.com/site/autoit/downloads/ 或者點(diǎn)擊下列圖標(biāo)進(jìn)行下載!

在這里插入圖片描述

兩種下載方法都可以,這里我想下載的是zip,解壓出來如下圖所示:

在這里插入圖片描述

點(diǎn)擊SciTe文件夾,我們打開腳本編輯器。

在這里插入圖片描述

打開百度圖片上傳窗口,打開AutoIt Windows Info 工具,鼠標(biāo)移動(dòng)到Finder Tool,按住鼠標(biāo)左鍵拖動(dòng)到需要識(shí)別的windows控件上。拖動(dòng)元素定位器上那個(gè)靶點(diǎn)形狀按鈕到文件上傳彈窗,能夠捕獲到一些元素信息。用鼠標(biāo)拖住工具上的Finder Tool的圖標(biāo)(即圖中藍(lán)色圈圈部分)到要識(shí)別的控件上,控件的唯一標(biāo)識(shí)信息會(huì)顯示在工具的左側(cè)部分(圖中紅框標(biāo)出的部分)。從顯示的結(jié)果得知,此控件的Title=“打開”,Class為Edit,Instance=1。我們就是利用控件的這些信息,定位控件,編寫腳本。

在這里插入圖片描述

打開編輯器,根據(jù)控件Finder Tool識(shí)別到的信息來調(diào)用函數(shù)編寫腳本;在AutoIt腳本編輯器里輸入如下腳本,不要下面我寫的備注哈。

我們這里需要知道有以下信息:

1.操作頁面的title,用于固定操作的頁面。
2.需要填入的信息,在輸入框中填入“上傳文件的路徑及文件名”(windows操作)
3.點(diǎn)擊“打開”按鈕,實(shí)現(xiàn)文件上傳。

根據(jù)以上所識(shí)別的控件信息,利用編輯器SciTE Script Editor,根據(jù)AutoIT的語法編寫腳本。

實(shí)現(xiàn)文件上傳需要的幾個(gè)方法:

ControlFocus ( "窗口標(biāo)題", "窗口文本", 控件ID)
---->設(shè)置輸入焦點(diǎn)到指定窗口的某個(gè)控件上(即:控件ID“文件名”輸入框的id)
WinWait ( "窗口標(biāo)題" [, "窗口文本" [, 超時(shí)時(shí)間]] )
---->暫停腳本的執(zhí)行直至指定窗口存在(出現(xiàn))為止
ControlSetText ( "窗口標(biāo)題", "窗口文本", 控件ID, "新文本" )
---->修改指定控件的文本(即:控件ID“文件名”輸入框的id)
Sleep ( 延遲 )
---->使腳本暫停指定時(shí)間段
ControlClick ( "窗口標(biāo)題", "窗口文本", 控件ID [, 按鈕] [, 點(diǎn)擊次數(shù)]] )
---->向指定控件發(fā)送鼠標(biāo)點(diǎn)擊命令(即:控件ID“打開”按鈕的id)

其中,title即AutoIt Window Info識(shí)別出的Title字段,controlID即AutoIt Window Info識(shí)別出的Class和Instance的拼接,如上圖拼接后的結(jié)果應(yīng)為:Button1(即classnameNN)

在這里插入圖片描述

ControlFocus(("title","text",controllD)用于識(shí)別windows文件上傳窗口
ControlFocus("打開","","")向文件名輸入框輸入本地要上傳文件的路徑
ControlSetText("打開","","Edit1","C:\Users\DELL\Desktop\test\upload\北京宏哥.jpeg")
Sleep(2000)點(diǎn)擊上傳窗口中的“打開“按鈕
ControlClick("打開","","Button1")

保存腳本文件為ChromFileUpload.au3格式,然后在AutoIt腳本編輯器中點(diǎn)擊Tools菜單,tools=>go,執(zhí)行腳本驗(yàn)證(前提是windows窗口必須是打開狀態(tài)),驗(yàn)證成功,如下圖所示:
為了這個(gè)腳本能被java 程序調(diào)用,需要通過Compile Script to .exe (x64)工具生成exe文件(這個(gè)是通過.exe安裝包安裝的AutoIt)

AutoIt腳本編輯器中點(diǎn)擊Tools菜單,選擇compile,會(huì)在同路徑下生成一個(gè).exe的文件(這個(gè)是通過解壓包安裝的AutoIt)

在這里插入圖片描述

提示Conversion complete轉(zhuǎn)化完成:將ChromeFileUpload.exe拷貝到項(xiàng)目下,待會(huì)在Selenium腳本要使用。
java代碼

//實(shí)現(xiàn)文件上傳。通過Runtime的靜態(tài)方法獲取Runtime對象
Runtime runtime = Runtime.getRuntime();
//通過Runtime對象調(diào)用exe方法
runtime.exec("C:\Users\DELL\Desktop\test\upload\ChromeFileUpload.exe");

到此這篇關(guān)于Java selenium上傳文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java selenium上傳文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot整合Mybatis與druid實(shí)現(xiàn)流程詳解

    SpringBoot整合Mybatis與druid實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了springboot整合mybatis plus與druid詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的下伙伴可以參考一下
    2022-10-10
  • Java中JDom解析XML_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java中JDom解析XML_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JDOM是一種解析XML的Java工具包。DOM適合于當(dāng)今流行的各種語言,包括Java,JavaScripte,VB,VBScript,Perl,C,C++等。下面通過本文給大家介紹Java中JDom解析XML的方法,感興趣的朋友一起學(xué)習(xí)吧
    2017-07-07
  • 一篇文章讓你弄懂Java運(yùn)算符

    一篇文章讓你弄懂Java運(yùn)算符

    java中位運(yùn)算符主要有按位與&、按位或|、按位非~、按位異或^, 在使用時(shí)需要將運(yùn)算數(shù)都轉(zhuǎn)換為二進(jìn)制再進(jìn)行運(yùn)算,若為負(fù)數(shù)則使用補(bǔ)碼表示,這篇文章主要給大家介紹了關(guān)于Java運(yùn)算符的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 簡述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別

    簡述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別

    這篇文章主要介紹了JAVA同步、異步、阻塞和非阻塞之間的區(qū)別,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • RocketMQ重試機(jī)制及消息冪代碼實(shí)例解析

    RocketMQ重試機(jī)制及消息冪代碼實(shí)例解析

    這篇文章主要介紹了RocketMQ重試機(jī)制及消息冪代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • java高并發(fā)之理解進(jìn)程和線程

    java高并發(fā)之理解進(jìn)程和線程

    這篇文章主要給大家介紹了關(guān)于java高并發(fā)進(jìn)程和線程的內(nèi)容,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • IDEA安裝lombok插件設(shè)置Enable Annotation Processing后編譯依然報(bào)錯(cuò)解決方法

    IDEA安裝lombok插件設(shè)置Enable Annotation Processing后編譯依然報(bào)錯(cuò)解決方法

    這篇文章主要介紹了IDEA安裝lombok插件設(shè)置Enable Annotation Processing后編譯依然報(bào)錯(cuò)解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Spring責(zé)任鏈模式使用實(shí)例講解

    Spring責(zé)任鏈模式使用實(shí)例講解

    責(zé)任鏈?zhǔn)切袨樾驮O(shè)計(jì)模式的一種,通過前一個(gè)處理者記錄下一個(gè)處理者的方式形成一條處理鏈??蛻舳嗽谡{(diào)用時(shí)只需要將請求傳遞到責(zé)任上即可,無需關(guān)注鏈路中的具體的傳遞過程。而鏈路中內(nèi)部的處理,是按照前一個(gè)處理者記錄的下一個(gè)處理者依次執(zhí)行
    2023-01-01
  • 通過AOP攔截Spring?Boot日志并將其存入數(shù)據(jù)庫功能實(shí)現(xiàn)

    通過AOP攔截Spring?Boot日志并將其存入數(shù)據(jù)庫功能實(shí)現(xiàn)

    本文介紹了如何使用Spring Boot和AOP技術(shù)實(shí)現(xiàn)攔截系統(tǒng)日志并保存到數(shù)據(jù)庫中的功能,包括配置數(shù)據(jù)庫連接、定義日志實(shí)體類、定義日志攔截器、使用AOP攔截日志并保存到數(shù)據(jù)庫中等步驟,感興趣的朋友一起看看吧
    2023-08-08

最新評論