Próbuję pisać testy selenu dla strony internetowej przy użyciu java. Jednak podczas testowania przesyłania plików napotkałem problem.Sposób obsługi okna przesyłania plików Windows podczas używania selenu
Po kliknięciu przycisku przesyłania plików automatycznie otwiera się przesyłanie plików systemu Windows. Mam kod działający poprawnie w celu umieszczenia tekstu w polu wysyłania, po prostu nie ma nic, co mógłbym zrobić, aby zapobiec automatycznemu otwieraniu okna, a nieautomatyczne otwieranie pliku Windows nie jest możliwe. Od badania tego tematu rozumiem, że nie ma możliwości, aby selenowy webdriver sobie z tym poradził. Moje pytanie brzmi: w jaki sposób mogę po prostu zamknąć okno wysyłania w sposób zautomatyzowany?
Próbowałem klasy robotów Java i to nie działało. Czekał, aż okno Prześlij został zamknięty przed wykonaniem któregokolwiek z poleceń Dałem go (ALT-F4, klikając w xy pozycji, etc)
góry dzięki
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
Mówisz o Selenium RC lub WebDriver ? Ten pierwszy ma ['attachFile()'] (http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#attachFile%28java.lang.String, % 20java.lang.String% 29), ta ostatnia używa ['sendKeys()'] (http://stackoverflow.com/a/10717319/1273080) (link ma również kilka wskazówek dotyczących użycia klasy "Robot" który, jeśli jest właściwie używany, również zawsze działa). –
Moje przeprosiny, w szczególności mówię o WebDriver. Problem z klasą robotów polega tylko na tym, aż okno dialogowe okna się zamknie, zanim uruchomi cokolwiek, o czym mówię. Miałem podobny problem dla skrzynki z alertami systemu operacyjnego i udało mi się przekonać robota do pracy, wydaje się, że jest to tylko okno wysyłania, które nie będzie działać, dopóki okno przesyłania nie zostanie zamknięte. – Zoltorn
Absolutnie nie. Czy możesz pokazać nam swój kod? Mogę niezawodnie używać klasy 'Robot' do przesyłania plików. W każdym razie lepszym sposobem jest użycie metody 'sendKeys()' w elemencie ''. Próbowałeś tego? –