Tôi đang cố gắng viết các kiểm tra selen cho một trang web bằng cách sử dụng java. Tuy nhiên, tôi đã gặp phải vấn đề khi thử nghiệm tải lên tệp ..Cách xử lý cửa sổ tải lên tệp windows khi sử dụng selenium
Khi tôi nhấp vào nút tải lên tệp, nó sẽ tự động mở tệp tải lên cửa sổ. Tôi có mã làm việc để đặt văn bản trong hộp tải lên thành công, nó chỉ là không có gì tôi có thể làm để ngăn chặn các cửa sổ hộp đến tự động, và có trang web không tự động mở cửa sổ tập tin tải lên không thực sự là một lựa chọn. Từ việc nghiên cứu chủ đề này, tôi hiểu không có cách nào để trình duyệt web selenium xử lý việc này. Câu hỏi của tôi là: cách tôi có thể đơn giản đóng cửa sổ tải lên theo cách tự động là gì?
Tôi đã thử lớp robot java và nó không hoạt động. Nó chờ đợi cho đến khi cửa sổ upload đã được đóng trước khi thực hiện bất kỳ lệnh tôi đã cho nó (ALT-F4, nhấn ở một vị trí xy, vv)
Cảm ơn trước
EDIT:
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
Bạn đang nói về Selenium RC, hoặc WebDriver ? Trước đây có ['attachFile()'] (http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtile/selenium/Selenium.html#attachFile%28java.lang.String, Phương thức% 20java.lang.String% 29), sau này sử dụng ['sendKeys()'] (http://stackoverflow.com/a/10717319/1273080) (liên kết cũng có một số lời khuyên về cách sử dụng lớp 'Robot' trong đó, nếu được sử dụng đúng cách, cũng luôn hoạt động). –
Lời xin lỗi của tôi, tôi đang nói về WebDriver nói riêng ở đây. Vấn đề với lớp robot là nó chỉ đợi cho đến khi hộp thoại cửa sổ đóng lại trước khi nó chạy bất cứ điều gì tôi nói với nó. Tôi đã có một vấn đề tương tự cho một hộp cảnh báo hệ điều hành và tôi đã có thể để có được robot để làm việc ở đó, nó chỉ có vẻ là cho các cửa sổ tải lên mà nó sẽ không chạy cho đến khi sau khi cửa sổ tải lên được đóng lại. – Zoltorn
Tuyệt đối không. Bạn có thể cho chúng tôi thấy mã của bạn không? Tôi có thể sử dụng lớp 'Robot' một cách đáng tin cậy để tải lên một tệp. Dù sao, cách tốt hơn là sử dụng phương thức 'sendKeys()' trên phần tử ''. Bạn đã thử điều đó chưa? –