Java kullanarak bir web sitesi için selenyum testleri yazmaya çalışıyorum. Ancak, dosya yükleme sırasında bir sorunla karşılaştım ..Selenium kullanırken Windows dosya yükleme penceresi nasıl kullanılır
Dosya yükleme düğmesine tıkladığımda, otomatik olarak windows dosya yükleme işlemini açar. Yazıyı yükleme kutusuna başarıyla koyabilmek için kod çalışıyor, sadece pencerenin otomatik olarak açılmasını engellemek için yapabileceğim hiçbir şey yok ve web sitesinin otomatik olarak açılmasını istemiyorum, dosya yükleme gerçekten bir seçenek değil. Bu konuyu araştırmaktan, selenyum webdriver'ın bunu halletmesinin bir yolu olmadığını anlıyorum. Yani benim sorum şu: yükleme penceresini otomatik olarak kapatabileceğim bir yol nedir?
Java robot sınıfını denedim ve işe yaramadı.
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
bahsediyoruz ? İlki ['attachFile()'] (http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#attachFile%28java.lang.String, % 20java.lang.String% 29) metodu, ikincisi ['sendKeys()'] kullanır (http://stackoverflow.com/a/10717319/1273080) (linkin ayrıca Robot'un sınıf kullanımı ile ilgili bazı ipuçları da vardır) ki, eğer doğru kullanılırsa, her zaman çalışır). –
Özür dilerim, özellikle burada WebDriver hakkında konuşuyorum. Robot sınıfı ile ilgili problem, pencerelerden birinin, anlattığım herhangi bir şeyi çalıştırmadan önce kapanmasını bekler. Bir işletim sistemi uyarı kutusu için benzer bir sorun vardı ve robotun orada çalışmasını sağlayabildim, yükleme penceresi kapatılıncaya kadar yayınlanmayacak olan yükleme penceresi için görünüyor. – Zoltorn
Kesinlikle hayır. Bize kodunu gösterebilir misin? Dosya yüklemek için 'Robot' sınıfını güvenilir bir şekilde kullanabilirim. Her neyse, daha iyi bir yol 'sendKeys()' metodunu ' 'elemanında kullanmaktır. Bunu denedin mi? –