متصفح بلا رأس Selenium (HTMLUnitDriver)

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

ما هو متصفح مقطوعة الرأس؟

المتصفح بدون رأس هو متصفح ويب بدون واجهة مستخدم رسومية. سيعمل هذا البرنامج تمامًا مثل المتصفح ولكنه لن يُظهر أي واجهة مستخدم رسومية.

تتضمن بعض الأمثلة على السائقين مقطوعي الرأس

  • htmlUnit
  • شبح
  • PhantomJS
  • ZombieJS
  • Watir-برنامج تشغيل الويب

متى يجب استخدام اختبار المتصفح بدون رأس؟

في العصر الرقمي الحالي، يتم تطوير تطبيقات الويب لتكون متوافقة مع مجموعة واسعة من الأجهزة والمنصات. غالبًا ما يمثل هذا تحديًا لمطوري مواقع الويب الذين يحتاجون إلى ضمان عمل تطبيقاتهم بسلاسة عبر هذه المنصات. يعد اختبار المتصفح بدون واجهة مستخدم حلاً مثاليًا لهذه المشكلة لأنه يسمح للمطورين باختبار تطبيقات الويب الخاصة بهم دون الحاجة إلى واجهة مستخدم رسومية. باستخدام اختبار المتصفح بدون واجهة مستخدم، يمكن للمطورين اختبار تطبيقات الويب المعقدة بسهولة مع مكونات وتبعيات متعددة، مما يمهد الطريق لتطوير أسرع وكود خالٍ من الأخطاء ومستخدمين سعداء.

اختبار المتصفح بدون رأس مع Selenium

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

أمثلة شائعة للمتصفحات مقطوعة الرأس

هناك العديد من المتصفحات بدون رأس المتاحة لكل منها ميزات وفوائد فريدة خاصة بها، مما يجعلها مناسبة لحالات الاستخدام المختلفة. نناقشها فيما يلي:-

PhantomJS

PhantomJS هو متصفح بدون رأس يستخدم WebKit كمحرك العرض الخاص به ويدعم معايير الويب المختلفة مثل HTML5 وCSS3 و Javaبرنامج نصي. يمكن استخدامه لالتقاط الشاشة ومهام أتمتة الصفحات. وهو مفتوح المصدر ومتوافق مع أنظمة تشغيل متعددة.

مثال Selenium مع مقطوعة الرأس PhantomJS في Python

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Set up PhantomJS options
phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy()
phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
# Set up the PhantomJS driver
driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

الكروم

يعد Chrome هو المتصفح الأكثر شعبية على هذا الكوكب ويقدم ميزة مقطوعة الرأس أيضًا. يمكن استخدامه عبر منصات متعددة ويدعم لغات وأطر البرمجة. تعمل أدوات تصحيح الأخطاء المضمنة والوثائق الشاملة على تسهيل الاستخدام واستكشاف أي مشكلات قد تنشأ أثناء الاختبار وإصلاحها.

مثال على Chrome بدون رأس مع Selenium in Python

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument('--headless')  # Run Chrome in headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Set up the Chrome driver
driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Firefox

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

مثال بلا رأس Firefox مع Selenium in Python

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# Set up Firefox options
firefox_options = Options()
firefox_options.add_argument('--headless')  # Run Firefox in headless mode
# Set up the Firefox driver
driver = webdriver.Firefox(options=firefox_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

مزايا اختبار المتصفح بدون رأس

  • تنفيذ اختبار أسرع
  • اختبار فعال من حيث التكلفة
  • تغطية اختبار أفضل
  • المرونة في إجراء الاختبارات
  • التكامل مع خطوط أنابيب CI / CD

عيوب اختبار المتصفح بدون رأس

  • عدم وجود واجهة المستخدم الرسومية
  • صعوبات في التصحيح
  • دعم محدود للمتصفح

HTMLUnitDriver

يعد HTML UnitDriver هو المتصفح الأقل وزنًا والأسرع تنفيذًا لـ WebDriver. لأنه يقوم على HtmlUnit. إنه شائع مثل برنامج تشغيل متصفح بلا رأس. إنه نفس Chrome أو IE أو FireFox برنامج التشغيل، ولكنه لا يحتوي على واجهة المستخدم الرسومية لذا لا يمكن للمرء رؤية تنفيذ الاختبار على الشاشة.

ميزات برنامج تشغيل وحدة HTML

  • دعم بروتوكولات HTTPS وHTTP
  • دعم استجابات HTML (النقر على الروابط، وإرسال النماذج، والمشي في نموذج DOM الخاص بمستند HTML وما إلى ذلك)
  • دعم ملفات تعريف الارتباط
  • دعم الخادم الوكيل
  • دعم المصادقة الأساسية وNTLM
  • أسعار Javaسيناريو تقنية
  • دعم طرق الإرسال GET وPOST
  • القدرة على تخصيص رؤوس الطلب التي يتم إرسالها إلى الخادم
  • القدرة على تحديد ما إذا كانت الاستجابات الفاشلة من الخادم يجب أن تؤدي إلى استثناءات أو يجب إرجاعها كصفحات من النوع المناسب

خطوات استخدام برنامج تشغيل HTMLUnit مع Selenium

الخطوة 1) In Eclipseانسخ الكود التالي. أضف ملفات مكتبة السيلينيوم القياسية إلى المشروع. لا يلزم وجود ملفات jar إضافية.

package  htmldriver;
import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;	
import org.openqa.selenium.htmlunit.HtmlUnitDriver;		
public class htmlUnitYest {				
		public static void main(String[] args) {
                     // Creating a new instance of the HTML unit driver
                      
                     WebDriver driver = new HtmlUnitDriver();
                      
           		     // Navigate to Google		
                     driver.get("http://www.google.com");					
          
					 // Locate the searchbox using its name		
                     WebElement element = driver.findElement(By.name("q"));	
                     
                    // Enter a search query		
                    element.sendKeys("Guru99");	
                   
		            // Submit the query. Webdriver searches for the form using the text input element automatically		
                    // No need to locate/find the submit button		
                    element.submit();			
                    
            		// This code will print the page title		
                    System.out.println("Page title is: " + driver.getTitle());		
                    
                    driver.quit();			
         }		
}

الخطوة 2) قم بتشغيل الكود. ستلاحظ عدم تشغيل أي متصفح وتظهر النتائج في وحدة التحكم.

خطوات استخدام برنامج تشغيل HTMLUnit مع Selenium

فوائد برنامج تشغيل وحدة HTML:

  • نظرًا لأنه لا يستخدم أي واجهة مستخدم رسومية للاختبار، فسيتم تشغيل اختباراتك في الخلفية دون أي انقطاع بصري
  • بالمقارنة بجميع الحالات الأخرى، يكون التنفيذ أسرع
  • لإجراء اختباراتك من خلال برنامج تشغيل HtmlUnit، يمكنك أيضًا تحديد إصدارات المتصفح الأخرى
  • إنها منصة مستقلة وأسهل لإجراء العديد من الاختبارات في وقت واحد. مثالي لاجل اختبار الحمل.

القيود:

  • ولا يمكنه محاكاة المتصفحات الأخرى Javaسلوك النص

PhantomJS

PhantomJS هو متصفح بدون رأس Javaواجهة برمجة التطبيقات النصية. إنها الحل الأمثل لاختبار موقع الويب بدون واجهة، والوصول إلى صفحات الويب والتلاعب بها، وتأتي مع واجهة برمجة تطبيقات DOM القياسية.

من أجل استخدام PhantomJS مع Seleniun، يجب على المرء استخدام GhostDriver. GhostDriver هو تطبيق لبروتوكول Webdriver Wire في JS البسيط لـ PhantomJS.

الإصدار الأحدث من PhatomJS لديه المتكاملة سائق الشبح و ليست هناك حاجة لتثبيته بشكل منفصل.

هنا كيف يعمل النظام-

PhantomJS

خطوات التشغيل Selenium مع PhatomJS

الخطوة 1) تحتاج Eclipse مع Selenium تثبيت

الخطوة 2) تحميل فانتوم جي إس هنا

خطوات التشغيل Selenium مع PhatomJS

الخطوة 3) قم باستخراج المجلد الذي تم تنزيله إلى ملفات البرنامج

خطوات التشغيل Selenium مع PhatomJS

الخطوة 4) قم بتنزيل برنامج تشغيل PhantomJS من هنا. أضف الجرة إلى مشروعك

خطوات التشغيل Selenium مع PhatomJS

الخطوة 5) قم بلصق الكود التالي في Eclipse

package htmldriver;	
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriver;	

public class phantom {				
		public static void main(String[] args) {
        	        File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe");				
                    System.setProperty("phantomjs.binary.path", file.getAbsolutePath());		
                    WebDriver driver = new PhantomJSDriver();	
                    driver.get("http://www.google.com");         
                    WebElement element = driver.findElement(By.name("q"));	
                    element.sendKeys("Guru99");					
                    element.submit();         			
                    System.out.println("Page title is: " + driver.getTitle());		
                    driver.quit();			
           }		
}

الخطوة 6) قم بتشغيل الكود. ستلاحظ أن الإخراج يظهر في وحدة التحكم ولا يتم تشغيل أي متصفح.

ملحوظة: عند التشغيل لأول مرة، بناءً على إعداداتك، قد تحصل على تحذير أمني من Windows للسماح بتشغيل PhantomJS. انقر على السماح بالوصول.

خطوات التشغيل Selenium مع PhatomJS

تستخدم العديد من المؤسسات Phantom.JS لأغراض مختلفة، على سبيل المثال،

  • اختبار مقطوعة الرأس
  • القبض على الشاشة
  • أتمتة الصفحة
  • شبكة رصد
  • لتقديم لقطات شاشة لوحة القيادة لمستخدميها
  • لتشغيل اختبارات الوحدة على سطر الأوامر
  • لإنشاء كتيبات الموظفين من HTML إلى PDF
  • جنبا إلى جنب مع QUnit لمجموعة الاختبار

الملخص

لاختبار التطبيق بسرعة في مختلف المتصفحات ودون أي انقطاع بصري، متصفح بلا رأس الاختبار يتم استخدامه. نظرًا لسرعته ودقته وسهولة الوصول إلى ميزاته، يكتسب برنامج تشغيل وحدة HTML وPhantomJS شعبية كبيرة لاختبار أتمتة المتصفح بدون واجهة. باتباع بعض الخطوات البسيطة، يمكنك معرفة مدى سهولة دمج هذه الأدوات مع أدوات أخرى وتنفيذ كود الاختبار.