2017-02-14 12 views
1

は私のAutoItスクリプトです:SeleniumのAutoIt Scriptを使って動的にファイルをアップロードするには?以下

ControlFocus("Open","","Edit1") 
ControlSetText("Open","","Edit1","C:\\project\\data\\data.csv") 
ControlClick("Open","","Button1") 

し、以下のようにjavaファイルで使用されているexeファイルにファイルを変換します。

Runtime.getRuntime().exec("C:\\project\\script\\TestAutoIt3.exe"); 

今私は10個のファイルをアップロードする必要があり、私は2つの質問ここにある:

  1. 私は動的にファイル名を渡し、EXEファイルを作成することはできますか?
  2. このスクリプトを他のシステムで実行したい場合、プロジェクトが別のパスにある可能性があるため、EXEファイルは が機能しません。どうすれば これを処理できますか?

ありがとうございます。あなたは、コードの下に必要Selenium + Javaを使用してファイルをアップロードするには

+0

webUI経由でファイルをアップロードしますか? 'セレンのみでファイルをアップロードするのはなぜですか? – Andersson

+0

どうすればいいですか教えてください。 –

答えて

0

:AutoItのファイル(exeファイル/ AU3)を維持のない頭痛がないように

ChromeDriver driver = new ChromeDriver(); 
driver.get("http://page.com"); // This is the page with file upload field 
WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']")); 
fileInput.sendKeys("C:\\Path\\To\\File.jpg"); 
+0

Andressonありがとうございます。しかし、私の入力タイプがボタンでブラウズウィンドウを開いている場合はどうすれば解決できますか? –

+0

はい、 'browse'や' upload'ボタンのようです(実際は '' 'HTML'要素です)。それはファイルへのパスを受け取るために使用されました。そして、あなたは前述の方法でそれを扱うことができます。あなたはすでに私のコードを試しましたか? – Andersson

+0

製品にバグがありました。今あなたのコードはチャンピオンのように動作します。どうもありがとう。 –

0

、アンダーソンから与えられた答えを使用してください。他のシステムでコードを使用している場合は、特別な作業は必要ありません。