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

Java+Selenium實現(xiàn)文件上傳下載功能詳解

 更新時間:2023年01月09日 09:07:22   作者:洛陽泰山  
這篇文章主要介紹了java代碼如何利用selenium操作瀏覽器上傳和下載文件功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下

簡介

本文主要講解java代碼如何利用selenium操作瀏覽器上傳和下載文件代碼教程。

上傳文件

常見的 web 頁面的上傳,一般使用 input 標(biāo)簽或是插件(JavaScript、Ajax),對于 input 標(biāo)簽的上傳,可以直接使用 sendKeys(路徑) 來進(jìn)行上傳。

先寫一個測試用的頁面。

代碼如下:

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
 
<body>
    <input type="file" name="">
</body>
</html>

下面通過 xpath 定位 input 標(biāo)簽,然后使用 sendKeys(filePath) 上傳文件。

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
 
import java.awt.*;
import java.io.IOException;
 
public class SeleniumDemo {
    private final static String webDriver = "webdriver.chrome.driver";
    private final static String webDriverPath ="E:\\chromedriver\\chromedriver.exe";
 
 
    public static void main(String[] args) throws InterruptedException, IOException, AWTException {
        System.setProperty(webDriver, webDriverPath);
        WebDriver driver= new ChromeDriver();
        driver.get("file:///C:/Users/liuya/Desktop/test.html");
        Thread.sleep(2000);
        String filePath="C:\\Users\\liuya\\Desktop\\doc\\tarzan.txt";
        driver.findElement(By.xpath("http://*[@name='upload']")).sendKeys(filePath);
 
    }
 
 
}

下載文件

Chrome瀏覽器

Firefox 瀏覽器要想實現(xiàn)文件下載,需要通過 add_experimental_option 添加 prefs 參數(shù)。

download.default_directory:設(shè)置下載路徑。

profile.default_content_settings.popups:0 禁止彈出窗口。

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
 
import java.awt.*;
import java.io.IOException;
 
public class SeleniumDemo {
    private final static String webDriver = "webdriver.chrome.driver";
    private final static String webDriverPath ="E:\\chromedriver\\chromedriver.exe";
 
 
    public static void main(String[] args) throws InterruptedException, IOException, AWTException {
        System.setProperty(webDriver, webDriverPath);
        WebDriver driver= new ChromeDriver();
        driver.get("http://pic.sogou.com/d?query=%E5%B0%8F%E7%8B%97&forbidqc=&entityid=&preQuery=&rawQuery=&queryList=&st=&did=45");
        Thread.sleep(2000);
        driver.findElement(By.className("download")).click();
    }
 
 
}

當(dāng)你彈出像下面的頁面 “您的連接不是私密連接” 時,可以直接鍵盤輸入 “thisisunsafe” 直接訪問鏈接。那么這個鍵盤輸入字符串的操作就是之間講到的 sendKeys,但由于該標(biāo)簽頁是新打開的,所以要通過 switchTo().window() 將窗口切換到最新的標(biāo)簽頁。

 //操作最新窗口
        driver.switchTo().window(driver.getWindowHandles().stream().reduce((first, second) -> second).orElse(null));
        driver.findElement(By.xpath("./html")).sendKeys("thisisunsafe");

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

相關(guān)文章

  • Spring?IOC?常用注解與使用實例詳解

    Spring?IOC?常用注解與使用實例詳解

    這篇文章主要介紹了Spring?IOC?常用注解與使用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 詳解JVM之運行時常量池

    詳解JVM之運行時常量池

    JVM在運行的時候會對class文件進(jìn)行加載,鏈接和初始化的過程。class文件中定義的常量池在JVM加載之后會發(fā)生什么神奇的變化呢?快來看一看吧。
    2021-06-06
  • Java數(shù)據(jù)結(jié)構(gòu)之二叉查找樹的實現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之二叉查找樹的實現(xiàn)

    二叉查找樹(亦稱二叉搜索樹、二叉排序樹)是一棵二叉樹,且各結(jié)點關(guān)鍵詞互異,其中根序列按其關(guān)鍵詞遞增排列。本文將通過示例詳細(xì)講解二叉查找樹,感興趣的可以了解一下
    2022-03-03
  • 實例分析java開啟線程的方法

    實例分析java開啟線程的方法

    在本文里我們通過實例給大家講解了JAVA開啟線程的方法和相關(guān)知識點,需要的朋友們跟著學(xué)習(xí)下。
    2019-03-03
  • springCloud服務(wù)注冊Eureka實現(xiàn)過程圖解

    springCloud服務(wù)注冊Eureka實現(xiàn)過程圖解

    這篇文章主要介紹了springCloud服務(wù)注冊Eureka實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Java模擬QQ實現(xiàn)聊天互動程序

    Java模擬QQ實現(xiàn)聊天互動程序

    這篇文章主要介紹了如何利用Java語言模擬QQ實現(xiàn)一個簡易的聊天互動程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-06-06
  • springboot如何去除debug日志

    springboot如何去除debug日志

    這篇文章主要介紹了springboot如何去除debug日志的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java如何判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù))

    java如何判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù))

    這篇文章主要介紹了java如何判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java 遍歷取出Map集合key-value數(shù)據(jù)的4種方法

    Java 遍歷取出Map集合key-value數(shù)據(jù)的4種方法

    這篇文章主要介紹了Java 遍歷取出Map集合key-value數(shù)據(jù)的4種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • idea 訪問html頁面端口號顯示的是63342而不是8080

    idea 訪問html頁面端口號顯示的是63342而不是8080

    這篇文章主要介紹了idea 訪問html頁面端口號顯示的是63342而不是8080,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論