انقر بزر الماوس الأيمن و Double انقر في Selenium

⚡ ملخص ذكي

انقر بزر الماوس الأيمن و Double انقر في Selenium يتم أتمتة إجراءات الماوس من خلال فئة الإجراءات. يوضح هذا البرنامج التعليمي كلا العمليتين مع أمثلة عملية. Java الكود، وسيناريوهات الاختبار الحقيقية، والأساليب التي تُشغّلها في الداخل Selenium برنامج تشغيل الويب.

  • 🖱️ المنهج الأساسي: تُتيح فئة الإجراءات وظيفة contextClick() للنقر بزر الماوس الأيمن ووظيفة doubleClick() للنقر المزدوج على أي عنصر ويب.
  • 🧭 نمط سير العمل: حدد موقع العنصر، وقم بإنشاء الإجراءات باستخدام برنامج التشغيل، واستدعِ الإجراء، وقم بتسلسل perform() لتنفيذه.
  • 🧪 سيناريو تم اختباره: يستهدف كلا المثالين الرابط demo.guru99.com/test/simple_context_menu.html للحصول على نتائج قابلة للتحقق والتكرار.
  • ؟؟؟؟ تمييز الفعل: النقر بزر الماوس الأيمن يفتح القوائم السياقية؛ النقر المزدوج يؤدي إلى تغييرات في الحالة مثل التنبيهات أو التعديلات.
  • 🤖 تكامل الذكاء الاصطناعي: أجهزة تحديد المواقع ذاتية الإصلاح والذكاء الاصطناعي Selenium تعمل الأطر البرمجية على تقليل عدم الاستقرار أثناء إجراءات النقر.

انقر بزر الماوس الأيمن و Double انقر في Selenium

انقر بزر الماوس الأيمن للداخل Selenium

انقر بزر الماوس الأيمن فوق الإجراء في Selenium يتم تنفيذ WebDriver باستخدام فئة Actions. وتُسمى هذه العملية أيضًا بالنقر السياقي. contextClick() تقوم دالة فئة الإجراءات بتنفيذ عملية النقر بزر الماوس الأيمن. فيما يلي الصيغة الأساسية.

Actions actions = new Actions(driver);
WebElement elementLocator = driver.findElement(By.id("ID"));
actions.contextClick(elementLocator).perform();

كيفية النقر بزر الماوس الأيمن في Selenium

السيناريو أدناه يُطلق Guruصفحة العرض التوضيحي رقم 99، يقوم بالنقر بزر الماوس الأيمن، ويختار خيارًا من قائمة السياق التي تظهر.

سيناريو الاختبار:

  1. إطلاق: https://demo.guru99.com/test/simple_context_menu.html
  2. انقر بزر الماوس الأيمن على زر "انقر بزر الماوس الأيمن هنا"
  3. انقر على رابط "تعديل" في القائمة المعروضة
  4. انقر فوق "موافق" في التنبيه
  5. أغلق المتصفح

Code:

package test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class ContextClick {
    public static void main(String[] args) throws InterruptedException {
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
        driver = new ChromeDriver();

        driver.get("https://demo.guru99.com/test/simple_context_menu.html");
        driver.manage().window().maximize();

        Actions action = new Actions(driver);
        WebElement link = driver.findElement(By.cssSelector(".context-menu-one"));
        action.contextClick(link).perform();

        WebElement element = driver.findElement(By.cssSelector(".context-menu-icon-copy"));
        element.click();
    }
}

النتيجة: تظهر قائمة السياق ويتم تحديد خيار التحرير.

انقر بزر الماوس الأيمن للداخل Selenium

Double انقر في Selenium

باتباع النمط نفسه القائم على الإجراءات، Double انقر في Selenium يستخدم WebDriver التعريفات المسبقة doubleClick() الأسلوب. فئة الإجراءات هي المساعد القياسي لعمليات الماوس ولوحة المفاتيح المركبة مثل النقر بزر الماوس الأيمن والسحب والإفلات والتمرير.

Actions actions = new Actions(driver);
WebElement elementLocator = driver.findElement(By.id("ID"));
actions.doubleClick(elementLocator).perform();

تسلسل التنفيذ هو:

  • قم بإنشاء كائن Actions باستخدام مثيل برنامج التشغيل.
  • حدد موقع العنصر المستهدف باستخدام findElement.
  • اتصل doubleClick() وسلسلة perform() ينفذ.

كيف Double انقر في Selenium

يوضح السيناريو التالي عملية نقر مزدوج كاملة تؤدي إلى تشغيل Javaيقوم البرنامج النصي بالتنبيه ويؤكد ذلك برمجياً.

سيناريو الاختبار:

Code:

package test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.Alert;

public class DoubleClickDemo {
    public static void main(String[] args) throws InterruptedException {
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
        driver = new ChromeDriver();

        driver.get("https://demo.guru99.com/test/simple_context_menu.html");
        driver.manage().window().maximize();

        Actions action = new Actions(driver);
        WebElement link = driver.findElement(By.xpath("//button[text()='Double-Click Me To See Alert']"));
        action.doubleClick(link).perform();

        Alert alert = driver.switchTo().alert();
        System.out.println("Alert Text\n" + alert.getText());
        alert.accept();
    }
}

النتيجة: يظهر التنبيه ويتم طباعة نص التنبيه إلى Eclipse وحدة التحكم.

Double انقر في Selenium إنذار

Double انقر على مخرجات وحدة التحكم

الأسئلة الشائعة

يُطلق WebElement.click() نقرة زر الفأرة الأيسر فقط. أما النقر بزر الفأرة الأيمن والنقر المزدوج فهما حدثان مركبان يتطلبان من فئة Actions ربطهما وإرسالهما عبر perform().

نعم. تحاكي الدالة contextClick() النقر بزر الفأرة الأيمن الحقيقي وتفتح قائمة السياق الخاصة بالتطبيق. يُستخدم المصطلحان بشكل متبادل في Selenium مستندات.

تقوم فئة Actions بتخزين الأحداث في قائمة انتظار. بدون استخدام الدالة perform()، لن يتم تنفيذ الخطوات المتسلسلة. تقوم الدالة perform() بتفريغ قائمة الانتظار وتنفيذ كل إجراء مُخزّن فيها بالترتيب.

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

نعم. النقر بزر الماوس الأيمن والنقر المزدوج عبر الإجراءات يعملان في وضع Chrome بدون واجهة رسومية. Firefox بشرط أن تكون واجهة برمجة تطبيقات W3C Actions مدعومة. Selenium أربعة سائقين يدعمون هذا الأمر بشكل كامل.

وصلت فئة الإجراءات إلى Selenium يتم تضمين WebDriver 2.0 داخل org.openqa.selenium.interactions ويتم الاحتفاظ به في Selenium 3 و 4 مع دعم W3C Actions.

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

نعم. يمكن لمساعدي البرمجة بالذكاء الاصطناعي تحويل سيناريو مكتوب باللغة الإنجليزية البسيطة إلى Selenium Java or Python استخدم الكود باستخدام contextClick() و doubleClick()، بالإضافة إلى اقتراح محددات مواقع قوية وحالات انتظار.

تلخيص هذه التدوينة بـ: