2017-10-16 9 views
0

ウェブページにログインしてファイルをアップロードしようとしています。しばらく検索した後、私はセレンを使用する解決策を見つけました。私はgeckodriverをダウンロードするために必要なこの作業を行うためにはjavaを使用してPHPサイトにファイルをアップロードする

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(); 
    } 
} 

<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コード:ページのhtmlコードは次のようになります.exeを実行し、3つの外部jarファイルを追加します。さらに、私がセレンに慣れていないので、私はそれについて何かを読んで、ソフトウェアテストフレームワークであることを知りました。だから私の質問です:これはファイルをアップロードするための適切な方法ですか、私はセレンを欠いていますか? もしそうなら、ウェブサイトにログインしてファイルをアップロードする簡単/簡単な方法はありますか?

答えて

1

HttpClientにチャンスを与える必要があります。これは十分に文書化されており、多くの例があります。 HttpClientは、拡張可能なOOフレームワーク内のすべてのHTTPメソッド(GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE)を完全に実装したものです。多くの認証スキーマはすでに実装されています。

関連する問題