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

رفع الملف في السيلينيوم

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

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

كيفية رفع الملف في Selenium

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

تحميل الملف في Selenium
التعامل مع النافذة المنبثقة لتحميل الملف Selenium برنامج تشغيل الويب

لنفترض أننا نرغب في تحميل الملف "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();
        }
}

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

تحميل الملف في Selenium

تذكر اتباع أمرين عند تحميل الملفات في WebDriver

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

تحميل الملف في Selenium

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

لا يتوفر لدى WebDriver القدرة على الوصول إلى مربعات حوار التنزيل يتم عرضها بواسطة المتصفحات عند النقر فوق رابط أو زر تنزيل. ومع ذلك، يمكننا تجاوز مربعات الحوار هذه باستخدام برنامج منفصل يسمى "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 برنامج تشغيل الويب. ستستمر هذه الأخطاء 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

Messenger تم تحميله بنجاح.

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

باستخدام WebDriver وWget

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

باستخدام WebDriver وWget

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

باستخدام WebDriver وWget

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

باستخدام WebDriver وWget

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

باستخدام 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.