البحث عن العناصر في Selenium - FindElement بواسطة XPath

لماذا تحتاج إلى أمر البحث عن العنصر (العناصر)؟

يتطلب التفاعل مع صفحة الويب من المستخدم تحديد موقع عنصر الويب. يتم استخدام أمر Find Element لتحديد عنصر ويب (واحد) بشكل فريد داخل صفحة الويب. حيث يتم استخدام أمر Find Elements لتحديد قائمة عناصر الويب داخل صفحة الويب بشكل فريد. هناك طرق متعددة لتحديد عنصر الويب بشكل فريد داخل صفحة الويب مثل المعرف والاسم واسم الفئة ونص الرابط ونص الرابط الجزئي واسم العلامة وXPATH.

بناء جملة الأمر FindElement

WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));

Selenium يأخذ أمر Find Element الكائن حسب كمعلمة ويعيد كائنًا من قائمة النوع WebElement Selenium. يمكن استخدام "حسب الكائن" بدوره مع إستراتيجيات تحديد المواقع المختلفة مثل البحث عن العنصر بواسطة المعرف Seleniumوالاسم واسم الفئة وXPATH وما إلى ذلك. يوجد أدناه بناء جملة أمر FindElement في Selenium سائق الويب.

يمكن أن تكون إستراتيجية تحديد الموقع أيًا من القيم التالية.

  • ID
  • Selenium البحث عن العنصر بالاسم
  • اسم الفصل
  • اسم العلامة
  • رابط نصي
  • نص ارتباط جزئي
  • XPATH

قيمة محدد الموقع هي القيمة الفريدة التي يمكن من خلالها تحديد عنصر الويب. تقع على عاتق المطورين والمختبرين مسؤولية التأكد من إمكانية التعرف على عناصر الويب بشكل فريد باستخدام خصائص معينة مثل المعرف أو الاسم.

على سبيل المثال:

WebElement loginLink = driver.findElement(By.linkText("Login"));

مثال: ابحث عن العنصر في Selenium

يتم استخدام التطبيق التالي لغرض العرض التوضيحي

http://demo.guru99.com/test/ajax.html

السيناريو:

الخطوة الأولى: افتح AUT

الخطوة الأولى: ابحث عن زر الاختيار وانقر عليه

package com.sample.stepdefinitions;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class NameDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub

System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();

driver.get("http://demo.guru99.com/test/ajax.html");

// Find the radio button for “No” using its ID and click on it
driver.findElement(By.id("no")).click();
	
//Click on Check Button
driver.findElement(By.id("buttoncheck")).click();

}

}

بناء جملة الأمر FindElements

List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));

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

على سبيل المثال:

List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));

مثال: البحث عن العناصر في Selenium

السيناريو:

الخطوة الأولى: افتح عنوان URL للتطبيق قيد الاختبار

الخطوة الأولى: ابحث عن نص أزرار الاختيار وقم بطباعته على وحدة التحكم في الإخراج

package com.sample.stepdefinitions;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class NameDemo {

public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("http://demo.guru99.com/test/ajax.html");
    List<WebElement> elements = driver.findElements(By.name("name"));
    System.out.println("Number of elements:" +elements.size());

    for (int i=0; i<elements.size();i++){
      System.out.println("Radio button text:" + elements.get(i).getAttribute("value"));
    }
  }
}

البحث عن عنصر مقابل البحث عن العناصر

فيما يلي الاختلافات الرئيسية بين أوامر البحث عن العناصر وأوامر البحث عن العناصر.

البحث عن العنصر مقابل البحث عن العناصر
البحث عن عنصر مقابل البحث عن العناصر في Selenium
البحث عن العنصر البحث عن العناصر
إرجاع أول عنصر ويب إذا كان هناك العديد من عناصر الويب الموجودة بنفس محدد المواقع إرجاع قائمة بعناصر الويب
يُطرح الاستثناء NoSuchElementException في حالة عدم وجود عناصر مطابقة لاستراتيجية محدد المواقع إرجاع قائمة فارغة إذا لم تكن هناك عناصر ويب مطابقة لاستراتيجية محدد المواقع
البحث عن عنصر بواسطة XPath سوف يعثر على عنصر ويب واحد فقط سيجد مجموعة من العناصر التي تتوافق مع استراتيجية تحديد المواقع.
غير قابل للتطبيق تتم فهرسة كل عنصر ويب برقم يبدأ من 0 تمامًا مثل المصفوفة

الملخص

  • يقوم أمر Find Element بإرجاع عنصر الويب الذي يتطابق مع أول عنصر داخل صفحة الويب.
  • يقوم أمر Find Elements بإرجاع قائمة بعناصر الويب التي تطابق المعايير.
  • ابحث عن العنصر بواسطة XPath في Selenium يرمي الأمر NoSuchElementException إذا لم يعثر على العنصر المطابق للمعايير.
  • يقوم أمر Find Elements بإرجاع قائمة فارغة في Selenium إذا لم تكن هناك عناصر مطابقة للمعايير