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

فئة العمل في Selenium
فئة العمل في Selenium هي ميزة مدمجة للتعامل مع أحداث لوحة المفاتيح والماوس. تدعم عمليات مثل النقر المتعدد باستخدام مفتاح التحكم، والسحب والإفلات، وغيرها الكثير. تُنفذ هذه العمليات باستخدام واجهة برمجة تطبيقات تفاعلات المستخدم المتقدمة (API) في Selenium برنامج تشغيل الويب.
التعامل مع أحداث لوحة المفاتيح والماوس
تتم معالجة أحداث لوحة المفاتيح والماوس الخاصة باستخدام واجهة برمجة تطبيقات تفاعلات المستخدم المتقدمة. يحتوي على الإجراءات و اكشن الفئات اللازمة لتنفيذ هذه الأحداث. فيما يلي قائمة بأكثر أحداث لوحة المفاتيح والماوس استخدامًا والتي توفرها فئة الإجراءات.
| الأسلوب | الوصف |
|---|---|
| انقر مع الاستمرار() | النقرات (بدون تحرير) في موقع الماوس الحالي. |
| سياق النقر () | يقوم بتنفيذ نقرة السياق (النقر بزر الماوس الأيمن) في موقع الماوس الحالي. |
| النقر المزدوج | يقوم بالنقر المزدوج على موقع الماوس الحالي. |
| السحب والإسقاط (المصدر، الهدف) | انقر مع الاستمرار على العنصر المصدر، ثم انتقل إلى العنصر الهدف، ثم حرر زر الماوس. المعلمات: المصدر (العنصر المراد الضغط عليه)، الهدف (العنصر المراد تحرير الزر عنده). |
| DragAndDropBy(المصدر، إزاحة x، إزاحة y) | انقر مع الاستمرار على العنصر المصدر، ثم حركه بمقدار إزاحة محددة، ثم حرر الزر. المعلمات: المصدر، الإزاحة الأفقية (xOffset)، الإزاحة الرأسية (yOffset). |
| keyDown(modifier_key) | يضغط على مفتاح تعديل دون رفعه، بحيث تفترض التفاعلات اللاحقة أنه لا يزال مضغوطًا. المعامل: مفتاح تعديل (Keys.ALT أو Keys.SHIFT أو Keys.CONTROL). |
| keyUp(modifier_key) | يحرر مفتاح تعديل. المعامل: مفتاح تعديل (Keys.ALT أو Keys.SHIFT أو Keys.CONTROL). |
| moveByOffset(إزاحة x، إزاحة y) | يحرك المؤشر من موضعه الحالي (أو 0,0) بمقدار الإزاحة المحددة. قيمة x سالبة تحرك المؤشر إلى اليسار؛ وقيمة y سالبة تحركه إلى الأعلى. |
| moveToElement(toElement) | ينقل المؤشر إلى منتصف العنصر. المعامل: العنصر المراد الانتقال إليه. |
| إفراج() | يحرر زر الفأرة الأيسر المضغوط في الموقع الحالي. |
| إرسال المفاتيح (onElement، charsequence) | يرسل سلسلة من ضغطات المفاتيح إلى عنصر. المعلمات: onElement (عادةً ما يكون حقل نصي)، charsequence (ضغطات المفاتيح المراد إرسالها). |
في المثال التالي ، نستخدم الامتداد moveToElement() طريقة للتمرير فوق أحد Mercury صفوف طاولات الجولات.
الخلية الموضحة أعلاه هي جزء من العنصر. عندما لا يكون المؤشر فوقه، يكون لونه #FFC455 (برتقالي). بعد تمرير المؤشر فوقه، يصبح لون الخلية شفافًا ويتطابق مع خلفية الجدول المحيط.
الخطوة 1) قم باستيراد ملف الإجراءات و اكشن الطبقات.
الخطوة 2) إنشاء مثيل لكائن إجراءات جديد.
الخطوة 3) قم بإنشاء إجراء باستخدام كائن الإجراءات من الخطوة 2.
هنا نستخدم ملف moveToElement() طريقة تمرير مؤشر الماوس فوق رابط "الرئيسية". build() يتم استدعاء هذه الطريقة دائمًا في النهاية بحيث يتم تجميع جميع الإجراءات المدرجة في خطوة واحدة.
الخطوة 4) استخدم perform() طريقة لتنفيذ كائن الإجراء المصمم في الخطوة 3.
فيما يلي الكود الكامل لبرنامج WebDriver الذي يتحقق من لون خلفية العنصر قبل وبعد تمرير مؤشر الماوس فوقه.
package newproject;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
public class PG7 {
public static void main(String[] args) {
String baseUrl = "https://demo.guru99.com/test/newtours/";
System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get(baseUrl);
WebElement link_Home = driver.findElement(By.linkText("Home"));
WebElement td_Home = driver.findElement(By.xpath(
"//html/body/div/table/tbody/tr/td"
+ "/table/tbody/tr/td"
+ "/table/tbody/tr/td"
+ "/table/tbody/tr"));
Actions builder = new Actions(driver);
Action mouseOverHome = builder.moveToElement(link_Home).build();
String bgColor = td_Home.getCssValue("background-color");
System.out.println("Before hover: " + bgColor);
mouseOverHome.perform();
bgColor = td_Home.getCssValue("background-color");
System.out.println("After hover: " + bgColor);
driver.close();
}
}
يوضح الناتج أدناه أن لون الخلفية أصبح شفافًا بعد تمرير مؤشر الماوس فوقه.
بناء سلسلة من الإجراءات المتعددة
يمكنك إنشاء سلسلة من الإجراءات باستخدام فئتي Action و Actions. تذكر إنهاء السلسلة باستخدام build() الطريقة. انظر إلى نموذج الكود أدناه.
public static void main(String[] args) {
String baseUrl = "https://www.facebook.com/";
WebDriver driver = new FirefoxDriver();
driver.get(baseUrl);
WebElement txtUsername = driver.findElement(By.id("email"));
Actions builder = new Actions(driver);
Action seriesOfActions = builder
.moveToElement(txtUsername)
.click()
.keyDown(txtUsername, Keys.SHIFT)
.sendKeys(txtUsername, "hello")
.keyUp(txtUsername, Keys.SHIFT)
.doubleClick(txtUsername)
.contextClick()
.build();
seriesOfActions.perform();
}





