Le seul moyen sûr de télécharger et de télécharger des fichiers dans les tests Selenium

image


Selenium WebDriver a Ă©tĂ© crĂ©Ă© comme un outil multiplateforme pour la gestion des navigateurs Web. Et depuis prĂšs de 14 ans maintenant, il fait trĂšs, trĂšs bien ce travail. Cependant, les autotests rĂ©els crĂ©ent des situations dans lesquelles le sĂ©lĂ©nium est impuissant. Par exemple, selon un script, vous devez tĂ©lĂ©charger ou tĂ©lĂ©charger un fichier. AprĂšs avoir cliquĂ© sur le bouton "TĂ©lĂ©charger" ou "TĂ©lĂ©charger", une fenĂȘtre du gestionnaire de fichiers du systĂšme d'exploitation apparaĂźt en haut de la fenĂȘtre du navigateur Ă  laquelle Selenium n'a plus accĂšs. Le test s'arrĂȘte.


J'ai entendu des recommandations pour utiliser des utilitaires comme AutoIt ou Sikuli pour travailler avec de telles fenĂȘtres systĂšme. Mon conseil est de ne jamais faire ça, c'est une pratique vicieuse qui conduit Ă  des tests instables:


  • -. .
  • . , .
  • headless

. 15 8 . .


— , .



, . — "". , ( input file) sendKeys() "" :


By fileInput = By.cssSelector("input[type=file]");
String filePath = "/home/selenium/files/upload.txt";

driver.findElement(fileInput).sendKeys(filePath);

. Selenium . . . , , , .


, ? , , DOM . $$("input[type=file]")


image


, findElement() . . , . , .


image


Selenium

, . , Selenium , . — . (barancev) . , .



, . - , Downloads, Selenium ( Internet Explorer), "" .


, , :


image


, . . :


image


, . href . , , http . Java :


//Get download link 
String downloadLink = driver
         .findElement(By.cssSelector("main#content a.btn"))
         .getAttribute("href");

//Set file to save
File fileToSave = new File("/path/to/file.zip");

//Download file using default org.apache.http client 
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(downloadLink);
HttpResponse response = httpClient.execute(httpGet, new BasicHttpContext());

//Save file on disk
copyInputStreamToFile(response.getEntity().getContent(), fileToSave);

http

, . , JavaScript . , . , , , . , . , - . , , Selenium. BrowserUpProxy BrowserMobProxy.


, Selenide. DownloadFileWithProxyServer.


, , . https, .


, , . , . — .



Pour que les tests restent stables, les facteurs qui les fragilisent doivent ĂȘtre supprimĂ©s. Dialogues d'un systĂšme d'exploitation, c'est l'un de ces facteurs. Dans les articles suivants, je prĂ©vois de rĂ©vĂ©ler d'autres aspects importants qui affectent grandement le fonctionnement stable des tests au sĂ©lĂ©nium. Écoutez le podcast QA Guild et une bonne automatisation.


All Articles