سيلينيوم ويب درايفر

نحن بحاجة إلى متصفحات لاختبار تطبيقات الويب. يقوم Selenium بتأتيمتصفح الويب ويساعدنا في أتمتة اختبار تطبيق الويب عبر متصفحات مختلفة. وقد قدمت واجهة Selenium API العديد من الفئات والواجهات للعمل مع متصفحات مختلفة وعناصر HTML.

ما هو واجهة Selenium WebDriver؟

واجهة Selenium WebDriver هي واجهة تعريف مجموعة من الطرق. ومع ذلك، يتم توفير التنفيذ بواسطة فئات محددة للمتصفح. وبعض فئات التنفيذ هي AndroidDriver، ChromeDriver، FirefoxDriver، InternetExplorerDriver، IPhoneDriver، SafariDriver، إلخ. وظيفة الواجهة هي التحكم في المتصفح. حتى أنها تساعدنا في تحديد عناصر صفحة HTML والقيام بعمليات عليها مثل النقر، ملء حقول النموذج، إلخ.

Selenium WebDriver

إذا كنا نريد تنفيذ حالات الاختبار في متصفح Firefox، يجب أن نستخدم فئة FirefoxDriver. بالمثل، إذا كنا نريد تنفيذ حالات الاختبار في متصفح Chrome، يجب أن نستخدم فئة ChromeDriver.

طرق واجهة Selenium WebDriver

بيانات البحث هي الواجهة الأعلى في واجهة برمجة التطبيقات Selenium التي تحتوي على طريقتين – findElement() و findElements(). واجهة Selenium WebDriver تحتوي على العديد من الطرق المجردة مثل get(String url), quit(), close(), getWindowHandle(), getWindowHandles(), getTitle() وما إلى ذلك. WebDriver لديه واجهات متداخلة مثل Window, Navigation, Timeouts وما إلى ذلك. تستخدم هذه الواجهات المتداخلة لأداء العمليات مثل back(), forward() وما إلى ذلك.

Method Description
get(String url) This method will launch a new browser and opens the given URL in the browser instance.
getWindowHandle() It is used to handle single window i.e. main window. It return type is string. It will returns browser windlw handle from focused browser.
getWindowHandles() It is used to handle multiple windows. It return type is Set. It will returns all handles from all opened browsers by Selenium WebDriver.
close() This command is used to close the current browser window which is currently in focus.
quit() This method will closes all the browsers windows which are currently opened and terminates the WebDriver session.
getTitle() This method is used to retrieve the title of the webpage the user currently working on.

قائمة الفئات التي تنفذ واجهة WebDriver

الفئات التي تنفذ بشكل رئيسي واجهة WebDriver هي ChromeDriver, EdgeDriver, FirefoxDriver, InternetExplorerDriver وما إلى ذلك. تتوافق كل فئة للمشغل مع متصفح. نقوم ببساطة بإنشاء كائن لفئات المشغل والعمل معها.

Class Description
ChromeDriver It helps you to execute Selenium Scripts on Chrome browser.
FirefoxDriver It helps you to execute Selenium Scripts on Firefox browser.
InternetExplorerDriver It helps you to execute Selenium Scripts on InternetExplorer browser.

قائمة الأوامر على عنصر الويب

عنصر WebElement في Selenium يمثل عنصر HTML. يمكننا الحصول على مثيل من WebElement باستخدام طريقة findElement() ثم القيام بإجراءات محددة مثل النقر، الإرسال وما إلى ذلك. بعض الطرق الشائعة المستخدمة لعنصر WebElement هي:

Command Description Syntax
findElement() This method finds the first element within the current web page by using given locator. WebElement element = driverObject.findElement(By.locator(“value”));
sendKeys() This method enters a value in to an Edit Box or Text box. driver.findElement(By.elementLocator(“value”)).sendkeys(“value”);
clear() It clears the Value from an Edit box or Text Box. driverObject.findElement(By.locatorname(“value”)).clear();
click() It clicks an Element (Button, Link, Checkbox) etc. driverObject.findElement(By.ElementLocator(“LocatorValue”)).click();

مثال على سيلينيوم ويب درايفر – طباعة عنوان موقع الويب

لنلقي نظرة على مثال بسيط عن استخدام سيلينيوم ويب درايفر لاستدعاء متصفح فايرفوكس وطباعة عنوان موقع ويب.

package com.journaldev.selenium.firefox;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class GeckoDriverExample {

	public static void main(String[] args) {
		// حدد موقع جيكو درايفر لأتمتة متصفح فايرفوكس
		System.setProperty("webdriver.gecko.driver", "geckodriver");
		WebDriver driver = new FirefoxDriver();
		driver.get("https://journaldev.com");
		String PageTitle = driver.getTitle();
		System.out.println("Page Title is:" + PageTitle);
		driver.close();
	}
}

الإخراج:

1551941763563	mozrunner::runner	INFO	Running command: "/Applications/Firefox.app/Contents/MacOS/firefox-bin" "-marionette" "-foreground" "-no-remote" "-profile" "/var/folders/1t/sx2jbcl534z88byy78_36ykr0000gn/T/rust_mozprofile.t6ZyMHsrf2bh"
1551941764296	[email protected]	WARN	Loading extension '[email protected]': Reading manifest: Invalid host permission: resource://pdf.js/
1551941764297	[email protected]	WARN	Loading extension '[email protected]': Reading manifest: Invalid host permission: about:reader*
Can't find symbol 'GetGraphicsResetStatus'.
1551941765794	Marionette	INFO	Listening on port 61417
1551941765818	Marionette	WARN	TLS certificate errors will be ignored for this session
Mar 07, 2019 12:26:05 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Page Title is:JournalDev - Java, Java EE, Android, Python, Web Development Tutorials
1551941814652	Marionette	INFO	Stopped listening on port 61417
Selenium WebDriver Example

يمكنك معاينة المزيد من أمثلة سيلينيوم من مستودع جيثب لدينا.

المرجع: كود جيثب لسيلينيوم ويب درايفر

Source:
https://www.digitalocean.com/community/tutorials/selenium-webdriver