كيفية تحديد قيمة من القائمة المنسدلة في Selenium WebDriver



تساعدك هذه المقالة على فهم ماهية فئة Select في Selenium WebDriver وأيضًا كيفية تحديد قيمة من قائمة منسدلة في Selenium WebDriver

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

سأناقش هذا الموضوع بهذا الترتيب:





لذا ، فلنبدأ.

حدد فئة في سيلينيوم WebDriver

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



بناء الجملة:

حدد oSelect = new Select ()

سيظهر خطأ يطلب إضافة وسيطات إلى الأمر. لذا حدد موقع عنصر الويب باستخدام امتداد .

تنص بوضوح على ذلك تحديد يطلب كائن نوع عنصر لمنشئه.



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

لذا ، دعنا الآن نمضي قدمًا للتعرف على الطرق المختلفة ضمن فئة التحديد هذه.

حدد فئة في Selenium WebDriver: أوامر تحديد مختلفة

فيما يلي أكثر الطرق استخدامًا للتعامل مع القائمة المنسدلة.

واحد. selectByVisibleText: selectByVisibleText (String arg0): باطل

من السهل جدًا اختيار أو تحديد خيار معطى تحت أي قوائم منسدلة ومربعات اختيار متعددة باستخدام هذه الطريقة. تأخذ معلمة من String والتي تعد واحدة من القيمة من تحديد عنصر ولا تُرجع شيئًا.

بناء الجملة: oSelect.selectByVisibleText ('نص')

مثال:

حدد oSelect = new Select (driver.findElement (By.id ('search-box'))) oSelect.selectByVisibleText ('Blog')

2 . selectByIndex: selectByIndex (int arg0): باطل

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

سيناتكس: oSelect.selectByIndex (int)

مثال:

حدد oSelect = new Select (driver.findElement (By.id ('Seacrch-box'))) oSelect.selectByIndex (2)

3. حدد حسب القيمة: selectByValue (String arg0): باطل

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

بناء الجملة: oSelect.selectByValue ('نص')

مثال:

حدد oSelect = new Select (driver.findElement (By.id ('Search-box'))) oSelect.selectByValue ('تدريب شهادة السيلينيوم')

أربعة. getOptions: getOptions (): قائمة

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

بناء الجملة: oSelect.getOptions ()

مثال:

حدد oSelect = new Select (driver.findElement (By.id ('Search-box'))) List elementCount = oSelect.getOptions () System.out.println (elementCount.size ())

لذلك ، دعنا ننتقل إلى الموضوع التالي ونتعرف على طرق التحديد المتعدد

حدد فئة في Selenium WebDriver: كيف يعمل الأمر Multiple SELECT؟

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

  • للنوافذ: استمر في الضغط على زر التحكم (ctrl) لتحديد خيارات متعددة.
  • لل ماك: اضغط مع الاستمرار على زر الأمر لتحديد خيارات متعددة.

من السهل استخدام مربعات الاختيار بدلاً من استخدام طرق مختلفة لأداء العمليات لأنه يتعين عليك إبلاغ المستخدم بأن التحديدات المتعددة متاحة. هناك طريقة تساعد بالفعل في تحديد أنه يمكنك استخدام خيارات تحديد متعددة.

هو متعدد

isMultiple (): منطقي - تخبر هذه الطريقة ما إذا كان عنصر SELECT يدعم خيارات تحديد متعددة في نفس الوقت أم لا. لا تقبل هذه الطريقة أي شيء ولكنها ترجع قيمة منطقية (صواب / خطأ).

بناء الجملة: oSelect.is متعدد ()

مثال:

حدد oSelect = new Select (driver.findElement (By.id (Element_ID))) oSelect.selectByIndex (index) oSelect.selectByIndex (index) // أو يمكن استخدامه كـ oSelect.selectByVisibleText (text) oSelect.selectByVisibleText (text) / / أو يمكن استخدامها كـ oSelect.selectByValue (value) oSelect.selectByValue (value)

حدد فئة في Selenium WebDriver: طرق DeSelect

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

في حالة رغبتك في إلغاء تحديد أي خيار محدد مسبقًا ، يمكن القيام بذلك باستخدام أي منهما

  • الغاء تحديد الكل ()
  • إلغاء التحديد
  • إلغاء الاختيار حسب القيمة
  • إلغاء التحديد عن طريق النص المرئي

دعونا نفهم الأساليب بالتفصيل.

  • الغاء تحديد الكل (): يمسح جميع الإدخالات المحددة. هذا صالح فقط عندما يدعم عنصر القائمة المنسدلة تحديدات متعددة.

مثال: o اختر. الغاء تحديد الكل ()

  • إلغاء تحديد الفهرس (): ذلكيلغي تحديد الخيار في الفهرس المحدد.

مثال: o اختر. إلغاء التحديد بواسطة الفهرس (2)

  • إلغاء تحديد ByValue (): تساعد هذه الطريقة في إلغاء تحديد الخيار الذي ' القيمة 'تتطابق مع المعلمة المحددة.

مثال: o اختر. إلغاء تحديد ByValue ('13')

  • إلغاء التحديد بواسطة النص المرئي (): تساعد هذه الطريقة في إلغاء تحديد الخيار الذي يعرض النص المطابق للمعلمة.

حدد فئة في Selenium WebDriver: كيفية تحديد خيار من القائمة المنسدلة؟

سأساعدك يا ​​رفاق على فهم كيف هذا تحديد تعمل الطريقة مع مثال في الوقت الفعلي.

في هذه الحالة ، سأفكر في العمل على أحد مواقع التجارة الإلكترونية الشهيرة facebook.com.

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

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

  • أولاً ، قم بتعيين ملف .
  • احصل على عنوان URL الخاص بـ موقع التواصل الاجتماعي الفيسبوك .
  • إنشاء الكائن والعثور على العنصر باستخدام محددات موقع العنصر.
  • حدد كائن WebElement باستخدام أساليب التحديد.
  • قم بإنهاء تنفيذ السائق.

الرجوع إلى هذا الرمز:

الحزمة Edurekaa import org.junit.Test import org.openqa.selenium.B by import org.openqa.selenium.Javascript import org.openqa.selenium.support.ui.Select فئة عامة SelectClass {Test public static void main (String [] args) تعرض InterruptException {System.setProperty ('webdriver.chrome.driver'، 'C: UsersVaishnaviDesktopchromedriver_win32 (2) chromedriver.exe ') WebDriver driver = new ChromeDriver () driver.get (' http://www.facebook.com ') driver.manage (). window (). maximize () //js.executeScript('window. scrollBy (0،300) ') WebElement month_dropdown = driver.findElement (By.id (' day ')) حدد oSelect = new حدد (month_dropdown) oSelect.selectByIndex (3) Thread.sleep (3000) WebElement year_yy = driver.findElement (بواسطة .id ('year')) حدد year_y = جديد اختر (year_yy) year_y.selectByValue ('2000') Thread.sleep (3000) WebElement month_m = driver.findElement (By.id ('month')) سيلي ct month_d1 = new حدد (month_m) month_d1.selectByVisibleText ('Jul') driver.quit ()}}

يتعامل البرنامج الثاني مع أداء الإجراءات في القائمة المنسدلة. في هذه الحالة ، دعونا نطبع عدد الأشهر والأسماء أيضًا.

  • قم بإنشاء قائمة WebElements وحدد الخيارات.
  • احصل على حجم الشهر المنسدل.
  • اطبع حجم قائمة الشهر.
  • قم بإنشاء كائن آخر من WebElement عليه واحصل على اسم الشهر.
  • اطبع الرقم باستخدام حلقة for.
  • قم بإنهاء تنفيذ السائق.
الحزمة Edurekaa import java.util.List import org.junit.Test import org.openqa.selenium.By import org.openqa.selenium.JavascriptExecutor import org.openqa.selenium.WebDriver import org.openqa.selenium.WebElement import org.openqa .selenium.chrome.ChromeDriver import org.openqa.selenium.support.ui.Select فئة عامة SelectClass2 {Test public static void main (String [] args) تعرض InterruptException {System.setProperty ('webdriver.chrome.driver'، ' C: UsersVaishnaviDesktopchromedriver_win32 (2) chromedriver.exe ') WebDriver driver = new ChromeDriver () JavascriptExecutor js = (JavascriptExecutor) driver.get (' http://www.facebook.com ') driver.manage (). window () .maximize () //js.executeScript('window.scrollBy(0،300) ') WebElement month_dropdown = driver.findElement (By.id (' month ')) حدد oSelect = new Select (month_dropdown) List & ampampltWebElement & ampampgt month_list = oSelect.getOptions ( ) int total_month = month_list.size () System.out.println ('العدد الإجمالي' + total_month) لـ (WebElement ele: month_list) {String month_name = ele.getText () System.out.println ('الشهور' + month_name)} driver.quit ()}}

الآن بهذا ، وصلنا إلى نهاية مدونة 'كيفية التحديد من القائمة المنسدلة في Selenium WebDriver'. أتمنى أن تكونوا قد استمتعتوا بهذه المقالة وفهمتم كيف يعمل الفصل في السيلينيوم.

نوع بيانات التاريخ في SQL

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

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في 'كيفية التحديد من القائمة المنسدلة في Selenium WebDriver' وسنقوم بالرد عليك.