0
我正在嘗試登錄網頁並上傳文件。搜索了一段時間後,我發現了一個使用硒的解決方案。在頁面的HTML代碼如下所示:使用java將文件上傳到php網站
<html>
<head><title>some title</title></head>
<body>
<h1>upload</h1>
upload your file<br>
<form action="hx2.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload">
<input type="hidden" name="debug" value="">
<input type="file" name="filename">
<input type="submit" value="Datei senden">
<input type="reset">
</form>
</body>
</html>
和用於登錄頁面,上傳我的文件中的Java代碼:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Example_1 {
public static final String BASEURL = "somesite.de/";
private static WebDriver driver;
public static void main(String[] args) {
String geckoPath = "C:\\...\\gecko\\geckodriver.exe";
System.setProperty("webdriver.gecko.driver",geckoPath);
driver = new FirefoxDriver();
loginAndUpload("uname", "pwd","C:\\...\\myFile.xml");
}
public static void loginAndUpload(String uname, String pwd, String filePath){
String URL = "http://" + uname + ":" + pwd + "@" + BASEURL;
driver.get(URL);
driver.findElement(By.name("filename")).sendKeys(filePath);
driver.findElement(By.cssSelector("input[type=submit]")).click();
driver.findElement(By.name("tan")).sendKeys("123");
driver.findElement(By.cssSelector("input[type=submit]")).click();
System.out.println(driver.getPageSource().contains("successful")?"successfully uploaded":"upload not successful");
driver.quit();
}
}
爲了使這項工作,我需要下載geckodriver .exe並添加3個外部jar文件。此外,由於我是硒新手,我試着讀一些關於它的知識,並發現它是一個軟件測試框架。所以我的問題是:這是一個正確的方式來上傳文件或我想念硒? 如果是這樣,是否有更簡單/更簡單的方式登錄網站並上傳文件?