javaを使用してウェブサイトのセレンテストを作成しようとしています。しかし、ファイルのアップロードをテストするときに問題が発生しました。セレンを使用しているときにWindowsファイルのアップロードウィンドウを処理する方法
ファイルのアップロードボタンをクリックすると、自動的にWindowsファイルのアップロードが開きます。アップロードボックスにテキストを挿入するコードがあります。自動的にウィンドウボックスが表示されるのを防ぐために何もできません。また、Windowsファイルを自動的に開かないようにすることはできません。このテーマを研究して、私はセレンのwebdriverがこれを処理する方法がないことを理解しています。だから私の質問はこれです:私は単に自動化された方法でアップロードウィンドウを閉じることができますか?
私はJavaロボットクラスを試しましたが、動作しませんでした。
wait.until(ExpectedConditions.elementToBeClickable(By.id(("addResourcesButton"))));
driver.findElement(By.id("addResourcesButton")).click();
//popup window comes up automatically at this point
try {
Robot robot = new Robot();
robot.mouseMove(875, 625);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (AWTException e) {
e.printStackTrace();
}
//my attempt to move the mouse and click, doesn't move or click until after I close the windows upload box
String fileToUpload = "C:\\file.png";
WebElement uploadElement = driver.findElement(By.id("fileInput"));
uploadElement.sendKeys(fileToUpload);
//Takes the code and successfully submits it to the text area, where I can now upload it
あなたはSelenium RCの、またはwebdriverをについて話しているの?前者には、['attachFile()'](http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#attachFile%28java.lang.String、 %20java.lang.String%29)メソッドを使用し、後者は['sendKeys()'](http://stackoverflow.com/a/10717319/1273080)を使用します(リンクには 'Robot'クラスの使用法に関するヒントもあります適切に使用されている場合は、常に動作します)。 –
私は申し訳ありませんが、特にここではWebDriverについて話しています。ロボットクラスの問題は、ウィンドウのダイアログが閉じるまで待ってから、何かを実行するだけです。私はOSのアラートボックスに似た問題がありました。そこでロボットを動かすことができました。アップロードウィンドウが閉じられた後でなければ、実行されないようです。 – Zoltorn
絶対にありません。あなたのコードを教えてください。私は確実に 'Robot'クラスを使ってファイルをアップロードすることができます。とにかく、より良い方法は、 ''要素に対して 'sendKeys()'メソッドを使うことです。それを試しましたか? –