<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Selenium Webdriver上傳文件,別傻傻的分不清得3種方法

          共 6096字,需瀏覽 13分鐘

           ·

          2021-01-06 02:32

          Selenium上傳文件

          Selenium中處理文件上傳可以簡化人工工作,并只需使用發(fā)送鍵()方法即可完成。上載文件后顯示一條消息,確認文件是否已成功上載。還有更多此類文件上傳的自動化方法。


          本教程涵蓋的主題包括HTML中的文件上傳,Selenium中處理文件上傳的方法(其中包括以下方法:使用sendKeys,然后使用AutoIT和Robot類)。

          本教程還說明了在Selenium中使用這些方法處理文件上傳的代碼的實現(xiàn),此后,我們將看到一些示例,這些示例在Selenium的幫助下執(zhí)行文件上傳。

          HTML文件上傳

          以下代碼實現(xiàn)說明了HTML頁面上的文件上傳操作。HTML代碼顯示了如何執(zhí)行上傳操作,方法是先單擊“選擇文件”按鈕瀏覽要上傳的文件,然后單擊“上傳文件”選項,此后我們可以看到文件已成功上傳。

          上面的圖片由HTML創(chuàng)建的頁面組成,下面是該頁面的HTML代碼。讓我們快速看一下HTML代碼。

          <html><head><title>上傳文件title>head><body><form action="photo_upload.png" method="post" enctype="multipart/form-data"><h2> 上傳文件 (上傳圖片文件) h2>選擇要上傳的文件:<input type="file" name="fileToUpload" id="fileToUpload"><input type="submit" value="Upload File" name="submit">form>body>html>


          因此,在通過單擊“上傳文件選項上載所需的文件時,將顯示以下頁面(圖像)(即顯示已上載的圖像文件),該頁面確認選擇上載的文件已成功上載。



          在Selenium中上傳文件的方法

          讓我們看看一些處理文件上傳的方法,以及相同的代碼實現(xiàn)。

          可以使用以下方法在Selenium中上傳文件:

          1. 使用sendKeys方法

          2. 使用AutoIT工具

          3. Robot Class


          #1)使用sendKeys方法


          在Selenium中上傳文件的最基本方法是使用sendKeys方法。它是Selenium中用于文件上傳的內(nèi)置功能。

          語法如下:

          WebElement?upload_file?=?driver.findElement(By.xpath(“?//?input?[@?id?='file_up']”)));upload_file.sendKeys(“ C:/Users/Sonali/Desktop/upload.png”);

          讓我們了解上述技術(shù)的代碼實現(xiàn):

          為了使用這種方法上傳文件,我們首先需要檢查提供文件上傳的元素或按鈕,然后使用sendKeys瀏覽保存要上傳的實際文件的路徑。將路徑以及文件名放在sendKeys中,以便程序?qū)Ш降教岬降穆窂揭垣@取文件。

          此后,單擊保存或提交按鈕,該文件將被視為已上傳。有時,我們還會收到一條消息,說明文件已成功上傳。

          使用sendKeys方法的代碼實現(xiàn):

          package?SeleniumPrograms;import?java.io.IOException;import?org.openqa.selenium.By;import?org.openqa.selenium.JavascriptExecutor;import?org.openqa.selenium.WebDriver;import?org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;
          public?class?FileUpload?{???public?static?void?main(String[]?args)?throws?IOException,?InterruptedException?{???WebDriver?d?=?new?FirefoxDriver();???d.manage().window().maximize();???d.manage().timeouts().pageLoadTimeout(10,?TimeUnit.SECONDS);???d.get("https://www.monsterindia.com/seeker/registration");?//Testing?webpage???d.manage().timeouts().implicitlyWait(10,?TimeUnit.SECONDS);???JavascriptExecutor?js?=?(JavascriptExecutor)d;???js.executeScript("window.scrollBy(0,380)");???Thread.sleep(3000);???WebElement?browse?=?d.findElement(By.xpath("http://input[@id='file-upload']"));???browse.sendKeys("C:\\Users\\Chait\\Desktop\\Files\\Spencer.txt");???System.out.println("File?is?Uploaded?Successfully");???}}


          因此,對于使用sendKeys選項上傳文件,我們只需使用內(nèi)置的sendKeys方法即可成功上傳所需的文件。

          這是上述代碼(適用于Monster.com)的輸出,在其中,使用sendKeys方法在selenium Web驅(qū)動程序中上傳文件時,我們可以看到顯示為“文件上傳成功”的消息。

          #2)使用AutoIT

          AutoIT是Windows軟件的免費軟件和開源自動化工具。它是使用BASIC腳本計算機語言編寫的,用于自動化Microsoft Windows用戶界面。它模擬擊鍵,鼠標移動和Windows控件操作的任意組合。

          下載和安裝AutoIT工具的步驟:


          1. 打開官網(wǎng)

          2. 轉(zhuǎn)到自動->下載。下載最新的AutoIT。

          3. 進行AutoIT安裝和設(shè)置(下一步->同意-> 32/64位選擇->文件安裝位置選擇->完成。

          4. 有2個安裝文件:a)AutoIt版本3? b)SciTE autoit 3。

          5. 安裝完成后,打開AutoIT編輯器。

          6. 轉(zhuǎn)到保存安裝文件的位置,單擊“ SciTE.exe”文件,然后將打開AutoIT編輯器。請參見下面的AutoIT編輯器屏幕截圖。


          AutoIT_Editor:

          現(xiàn)在,讓我們簡短地了解如何使用此工具:

          • 打開AutoIT編輯器。

          • 我們需要在AutoIT編輯器中編寫一個簡單的代碼,這是文件上載操作所必需的(要上載的文件名,將在代碼中提到)。

          • 現(xiàn)在關(guān)閉編輯器并右鍵單擊它,您將看到編譯腳本選項。為64位計算機選擇編譯腳本(x64)選項,為32位計算機選擇編譯腳本(x86)。

          • 完成上述步驟后,將創(chuàng)建一個.exe文件,并且該文件將在我們的Selenium蝕代碼中提及。編譯后,如下圖所示,創(chuàng)建了“ fileupload.exe”文件?,F(xiàn)在,我們可以在Selenium Web驅(qū)動程序腳本中使用此文件。

          保存的文件:


          下圖通過執(zhí)行運行fileupload.exe文件的Selenium蝕腳本,幫助我們了解了要上傳的文件form.csv。

          AutoIT的優(yōu)勢:


          • AutoIT是一種開源工具,我們無需為此付費。

          • 小型獨立可執(zhí)行文件可以使用AutoIT創(chuàng)建。

          • 它支持輕松記錄或回放腳本。

          • 我們可以使用console write命令輕松調(diào)試代碼?。

          • 它可以選擇創(chuàng)建不同的GUI并識別幾乎所有基本的Windows控件。

          • 它簡單易用。


          AutoIT的缺點:


          • 它僅適用于Windows操作系統(tǒng)

          • 由于基本的編碼原理知識是必須的,因此事實證明它是專業(yè)人士的絕佳工具,但對初學(xué)者而言可能有點復(fù)雜。

          • 到目前為止,AutoIT還沒有Java支持。

          • 用戶需要在使用不同的預(yù)定義實用程序功能時導(dǎo)入單獨的庫。


          現(xiàn)在,讓我們轉(zhuǎn)到使用AutoIT的文件上傳的實現(xiàn)代碼:

          在這里,我們將看到如何使用Selenium中的AutoIT處理文件上傳。為此,讓我們考慮OrangeHRM網(wǎng)站的示例。

          使用AutoIT處理Selenium中的文件上傳的代碼實現(xiàn):

          package?SeleniumPrograms;?import java.io.IOException;import org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver; public class FileUpload {   public static void main(String[] args) throws IOException, InterruptedException {??//TODO?自動生成的方法保存    WebDriver d = new FirefoxDriver();   d.manage().window().maximize();???d.manage().timeouts().pageLoadTimeout(10,?TimeUnit.SECONDS);????//?用于頁面加載   d.get(“https://opensource-demo.orangehrmlive.com/“);       // 測試網(wǎng)頁   d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);      // 隱式等待                WebElement uname = d.findElement(By.id("txtUsername"));          // 用戶名......... ID   uname.sendKeys("Admin");        WebElement pwd = d.findElement(By.name("txtPassword"));    // 密碼...... NAME   pwd.sendKeys("admin123");       WebElement loginb = d.findElement(By.xpath("http://input[@id='btnLogin']"));   loginb.click();                                   //登錄按鈕......XPATH             WebElement pim = d.findElement(By.id("menu_pim_viewPimModule"));    pim.click();                                            // 管理員標簽-PIM    WebElement config = d.findElement(By.id("menu_pim_Configuration"));    config.click();                                  //配置選項卡     WebElement data_imp = d.findElement(By.partialLinkText("Data "));    data_imp.click();                                 //數(shù)據(jù)導(dǎo)入選項卡..... PARTIALLINKT              // UPLOADING FILE USING AutoIT....         WebElement browser = d.findElement(By.xpath("http://input[@id='pimCsvImport_csvFile']"));   //瀏覽按鈕    browser.click();                                    System.out.println(“1”);    Runtime.getRuntime().exec("C:\\Users\\Chait\\Desktop\\autoit\\fileupload.exe");  System.out.println("2");  Thread.sleep(3000); ??WebElement?upload?=?d.findElement(By.id("btnSave"));????????????//上傳按鈕   upload.click();   System.out.println("3");       ???System.out.println("File?Uploaded?Successfully");???????????//?確認信息                   } }



          如上面的代碼所示,以下行非常重要,因為它顯示了AutoIT的用法:

          Runtime.getRuntime()。exec(“ C:\\ Users \\ Chait \\ Desktop \\ autoit \\ fileupload.exe”);

          這里,


          • 運行時:它允許腳本與運行腳本的環(huán)境進行交互。

          • getRuntime():用于獲取與流程關(guān)聯(lián)的當(dāng)前運行時。

          • exec():它執(zhí)行AutoIT腳本(此處為fileupload.exe)。


          程序執(zhí)行此行時,它將遍歷fileupload.exe文件,在其中執(zhí)行AutoIT代碼,如下所示:

          ControlFocus("File Upload","","Edit1")ControlSetText("File Upload","","Edit1","C:\Users\Chait\Desktop\autoit\data_file.csv")ControlClick("File Upload","","Button1")


          這里,


          • ControlFocus:此方法將輸入焦點設(shè)置為“文件名”文本框。

          • ControlSetText:此方法定義文件的路徑。我們將在“文件名”文本框中上載的文件-跟蹤其路徑。

          • ControlClick:此方法用于單擊文件上傳器窗口的“打開”按鈕。

          上面代碼的輸出如下所示:


          往期推薦


          如何將功能測試用例轉(zhuǎn)為自動化腳本?

          為什么集成測試被人瞧不起?我不理解還是?

          微軟開源最強自動化工具-Playwright

          如何使用Selenium WebDriver查找錯誤的鏈接?

          Python+webdriver定位元素的幾種方法

          so easy!使用unittest管理集成測試框架,再也不用擔(dān)心接口測試

          數(shù)據(jù)驅(qū)動框架(Apache POI – Excel)

          Python中的文件處理–為初學(xué)者學(xué)習(xí)Python文件處理



          瀏覽 98
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女操逼黄片视频 | 北条麻妃九九九在线视频 | 精品国产久 | 91精品国产91久久久久久 | 日韩激情综合网 |