5

Javaを使用してWebサイトのセレンテストを作成しようとしています. ただし、ファイルのアップロードをテストしているときに問題が発生しました..

ファイルのアップロード ボタンをクリックすると、Windows ファイルのアップロードが自動的に開きます。テキストをアップロードボックスに正常に配置するためのコードがあります.Windowsボックスが自動的に表示されるのを止めるためにできることは何もありません.WebサイトでWindowsファイルのアップロードを自動的に開かないようにすることは実際にはオプションではありません. このテーマを調査したところ、Selenium Webdriver がこれを処理する方法がないことがわかりました。私の質問はこれです: 自動化された方法でアップロード ウィンドウを簡単に閉じる方法は何ですか?

Java ロボット クラスを試しましたが、うまくいきませんでした。私が与えたコマンド(ALT-F4、xy位置でのクリックなど)を実行する前に、アップロードウィンドウが閉じられるまで待機しました。

前もって感謝します

編集:

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
4

2 に答える 2

5

次のいずれかを使用して、非ブロック クリックを実行できます。

Advanced User Interactions API ( JavaDocs )

WebElement element = driver.findElement(By.whatever("anything"));
new Actions(driver).click(element).perform();

または JavaScript:

JavascriptExecutor js = (JavascriptExecutor)driver;

WebElement element = driver.findElement(By.whatever("anything"));
js.executeScript("arguments[0].click()", element);
于 2013-05-31T19:30:29.293 に答える