كيفية تحميل وتنزيل ملف باستخدام Selenium Webdriver

تحميل الملف في السيلينيوم

يتم تحميل الملفات في WebDriver ببساطة عن طريق استخدام طريقة sendKeys() في حقل إدخال تحديد الملف لإدخال المسار إلى الملف المراد تحميله.

في هذا البرنامج التعليمي، سوف نتعلم كيفية التعامل مع تحميل الملفات وتنزيلها.

كيفية تحميل الملف في السيلينيوم

في هذا القسم سوف نستخدم https://demo.guru99.com/test/upload/ كما تطبيق الاختبار لدينا. يسمح هذا الموقع بسهولة لأي زائر بتحميل الملفات دون الحاجة إلى التسجيل.

تحميل الملف في السيلينيوم
التعامل مع النافذة المنبثقة لتحميل الملفات في Selenium Webdriver

لنفترض أننا نرغب في تحميل الملف "C:\newhtml.html". يجب أن يكون رمز WebDriver الخاص بنا مثل الرمز الموضح أدناه.

package newproject;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG9 {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
        String baseUrl = "https://demo.guru99.com/test/upload/";
        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);
        WebElement uploadElement = driver.findElement(By.id("uploadfile_0"));

        // enter the file path onto the file-selection input field
        uploadElement.sendKeys("C:\\newhtml.html");

        // check the "I accept the terms of service" check box
        driver.findElement(By.id("terms")).click();

        // click the "UploadFile" button
        driver.findElement(By.name("send")).click();
        }
}

بعد تشغيل هذا البرنامج النصي، يجب أن تكون قادرًا على تحميل الملف بنجاح ويجب أن تحصل على رسالة مشابهة لهذه.

تحميل الملف في السيلينيوم

تذكر فولوwing شيئين عند تحميل الملفات في WebDriver

  1. ليست هناك حاجة لمحاكاة النقر على زر "تصفح". يقوم WebDriver تلقائيًا بإدخال مسار الملف في نص تحديد الملف box التابع عنصر
  2. عند تعيين مسار الملف في Java IDE الخاص بك، استخدم حرف الهروب المناسب للشرطة المائلة الخلفية.

تحميل الملف في السيلينيوم

كيفية تنزيل ملف في برنامج تشغيل الويب السيلينيوم

ليس لدى WebDriver القدرة على الوصول إلى مربع حوار التنزيل boxes تقدمها المتصفحات عند النقر فوق رابط أو زر التنزيل. ومع ذلك، يمكننا تجاوز هذه الحوارات boxيتم ذلك باستخدام برنامج منفصل يسمى "wget".

ما هو وجت؟

Wget هو برنامج سطر أوامر صغير وسهل الاستخدام يستخدم لأتمتة التنزيلات. في الأساس، سوف نقوم بالوصول إلى Wget من برنامج WebDriver النصي الخاص بنا لإجراء عملية التنزيل.

إعداد Wget

الخطوة 1) في محرك الأقراص C، قم بإنشاء مجلد جديد وقم بتسميته باسم "Wget".

تحميل wget.exe من هنا وضعه في مجلد Wget الذي قمت بإنشائه من الخطوة أعلاه.

إعداد Wget

الخطوة 2) افتح Run بالضغط على windows مفتاح + "R" ؛ اكتب "cmd وانقر فوق موافق".

إعداد Wget

اكتب الأمر "cd /" للانتقال إلى الدليل الجذر

إعداد Wget

الخطوة 3) اكتب الأمر للتحقق مما إذا كان الإعداد المحدد يعمل أم لا

cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

إعداد Wget

يبدو أن هناك مشكلة في الكتابة على محرك الأقراص C.

الخطوة 4) تحتاج إلى تصحيح أخطاء wget في سطر الأوامر قبل تنفيذ التعليمات البرمجية باستخدام Selenium Webdriver. ستستمر هذه الأخطاء Eclipse ولن تكون رسائل الخطأ مفيدة. من الأفضل أن تعمل wget أولاً باستخدام سطر الأوامر. إذا كان يعمل في سطر الأوامر فسوف يعمل بالتأكيد Eclipse.

في مثالنا، كما هو موضح في الخطوة 3، توجد مشكلة في الكتابة على محرك الأقراص C. دعنا نغير موقع التنزيل إلى محرك الأقراص D ونتحقق من النتائج.

cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

إعداد Wget

تم تحميل الماسنجر بنجاح

قبل المتابعة، لا تنس حذف الملف الذي تم تنزيله

باستخدام WebDriver وWget

في فولوwing على سبيل المثال، سوف نستخدم WebDriver وwget لتنزيل برنامج دردشة شائع يسمى Yahoo Messenger. يجب أن يكون عنوان URL الأساسي الخاص بنا هو https://demo.guru99.com/test/yahoo.html.

باستخدام WebDriver وWget

الخطوة 1) قم باستيراد الحزمة "java.io.IOException" لأنه سيتعين علينا التقاط IOException later في الخطوة شنومكس.

باستخدام WebDriver وWget

الخطوة 2) استخدم getAttribute() للحصول على قيمة "href" لارتباط التنزيل وحفظها كمتغير سلسلة. في هذه الحالة، قمنا بتسمية المتغير باسم "sourceLocation".

باستخدام WebDriver وWget

الخطوة 3) قم بإعداد بناء الجملة لـ wget باستخدام following أمر.

باستخدام WebDriver وWget

الخطوة 4) ابدأ عملية التنزيل عن طريق الاتصال بـ wget من رمز WebDriver الخاص بنا.

باستخدام WebDriver وWget

لتلخيص كل ذلك، يمكن أن يبدو رمز WebDriver الخاص بك كما هو موضح أدناه.

package newproject;
import java.io.IOException;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG8 {
    public static void main(String[] args) {
        
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
                String baseUrl = "https://demo.guru99.com/test/yahoo.html";
        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);
        WebElement downloadButton = driver.findElement(By
        .id("messenger-download"));
        String sourceLocation = downloadButton.getAttribute("href");
        String wget_command = "cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate " + sourceLocation;

        try {
        Process exec = Runtime.getRuntime().exec(wget_command);
        int exitVal = exec.waitFor();
        System.out.println("Exit value: " + exitVal);
        } catch (InterruptedException | IOException ex) {
        System.out.println(ex.toString());
        }
        driver.close();
        }
        
}

بعد تنفيذ هذا الرمز، تحقق من محرك الأقراص D لديك وتأكد من تنزيل برنامج تثبيت Yahoo Messenger هناك بنجاح.

باستخدام WebDriver وWget

نبذة عامة

  • يتم تحميل الملفات في WebDriver ببساطة عن طريق استخدام طريقة sendKeys() في حقل إدخال تحديد الملف لإدخال المسار إلى الملف المراد تحميله.
  • لا يستطيع WebDriver أتمتة تنزيل الملفات من تلقاء نفسه.
  • أسهل طريقة لتنزيل الملفات باستخدام WebDriver هي استخدام Wget.