Java+Selenium實現文件上傳下載功能詳解
簡介
本文主要講解java代碼如何利用selenium操作瀏覽器上傳和下載文件代碼教程。
上傳文件
常見的 web 頁面的上傳,一般使用 input 標簽或是插件(JavaScript、Ajax),對于 input 標簽的上傳,可以直接使用 sendKeys(路徑) 來進行上傳。
先寫一個測試用的頁面。

代碼如下:
<!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 標簽,然后使用 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 瀏覽器要想實現文件下載,需要通過 add_experimental_option 添加 prefs 參數。
download.default_directory:設置下載路徑。
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();
}
}當你彈出像下面的頁面 “您的連接不是私密連接” 時,可以直接鍵盤輸入 “thisisunsafe” 直接訪問鏈接。那么這個鍵盤輸入字符串的操作就是之間講到的 sendKeys,但由于該標簽頁是新打開的,所以要通過 switchTo().window() 將窗口切換到最新的標簽頁。
//操作最新窗口
driver.switchTo().window(driver.getWindowHandles().stream().reduce((first, second) -> second).orElse(null));
driver.findElement(By.xpath("./html")).sendKeys("thisisunsafe");
到此這篇關于Java+Selenium實現文件上傳下載功能詳解的文章就介紹到這了,更多相關Java Selenium文件上傳下載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Springcloud整合stream,rabbitmq實現消息驅動功能
官方定義SpringCloud?Stream?是一個構建消息驅動微服務的框架。我們只需要搞清楚如何與Spring?Cloud?Stream?交互就可以方便使用消息驅動的方式。本文將通過Springcloud整合stream,rabbitmq實現消息驅動功能,需要的可以參考一下2022-02-02
java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作(實例代碼詳解)
這篇文章主要介紹了java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list
這篇文章主要介紹了java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯誤解決辦法的相關資料,需要的朋友可以參考下2016-12-12

