الطريقة الوحيدة المؤكدة لتحميل وتنزيل الملفات في اختبارات السيلينيوم

صورة


تم إنشاء Selenium WebDriver كأداة عبر النظام الأساسي لإدارة متصفحات الويب. وما يقرب من 14 عامًا حتى الآن يقوم بهذا العمل بشكل جيد جدًا. ومع ذلك ، تخلق الاختبارات الذاتية الواقعية مواقف يكون فيها السيلينيوم عاجزًا. على سبيل المثال ، وفقًا لنص برمجي ، تحتاج إلى تحميل أو تنزيل ملف. بعد النقر على الزر "تنزيل" أو "تنزيل" ، تظهر نافذة مدير الملفات في نظام التشغيل أعلى نافذة المتصفح التي لم يعد بإمكان Selenium الوصول إليها. يتوقف الاختبار.


سمعت توصيات لاستخدام أدوات مثل AutoIt أو Sikuli للعمل مع نوافذ النظام هذه. نصيحتي هي عدم القيام بذلك أبدًا ، فهذه ممارسة شريرة تؤدي إلى اختبارات غير مستقرة:


  • -. .
  • . , .
  • 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]")


صورة


, findElement() . . , . , .


صورة


Selenium

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



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


, , :


صورة


, . . :


صورة


, . 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, .


, , . , . — .



من أجل أن تظل الاختبارات مستقرة ، يجب إزالة العوامل التي تجعلها هشة. حوارات نظام التشغيل ، وهي واحدة من هذه العوامل. أخطط في المقالات التالية للكشف عن جوانب مهمة أخرى تؤثر بشكل كبير على التشغيل المستقر لاختبارات السيلينيوم. الاستماع إلى بودكاست QA Guild والأتمتة الجيدة.


All Articles