دوشنبه , ۱۰ اردیبهشت ۱۴۰۳

آموزش Selenium-قسمت نهم: Locatorها در Selenium IDE شامل CSS Locator، DOM، XPath، Link Text، ID(بخش سوم)

Selenium
Selenium

موقعیت‌یابی بوسیله (DOM(Document Object Model

به عبارت ساده (DOM(Document Object Model، راهیست که بواسطه آن عناصر HTML ساختار یافته می‌شوند. Selenium IDE قادر برای دسترسی به عناصر صفحه از DOM استفاده کند. اگر ما از این روش استفاده کنیم، Target Box ما همیشه با “…dom=document” شروع خواهد شد؛ با این حال، پیشوند “=dom” به طور معمول حذف خواهد شد، چرا که Selenium IDE قادر است هر چیزی که با کلیدواژه “document” شروع می‌شود(تا به هر ترتیب مسیری در DOM باشد) را به صورت اتوماتیک Interpret(تفسیر) کند.

چهار روش اساسی برای موقعیت‌یابی یک عنصر از طریق DOM وجود دارد:

  • getElementById
  • getElementsByName
  • dom:name(فقط به عناصری که دارای یک فرم نامگذاری شده هستند اِعمال می‌شود)
  • dom:index

موقعیت‌یابی بوسیله getElementById – DOM 

اجازه دهید ما بر روی اولین متد یعنی استفاده از متد getElementById تمرکز کنیم. سینتکس به این شکل است:

سینتکس

شرح

document.getElementById("id of the element")

ID مربوط به عنصر = عبارتست از مقدار ID Attribute مربوط به عنصر تا بتوان بواسطه آن به عنصر مذبور دسترسی داشت. این مقدار همیشه باید در یک جفت پرانتز ("") محصور شود.

مرحله ۱- به صفحه دمو در اینجا بروید و از Firebug برای بررسی “Keep me logged in” استفاده کنید. به ID آن توجه داشته باشید.

Selenium Figure 8-15
Selenium Figure 9-1

می‌توانید ببینید ID که باید استفاده کنید “persist_box” است.

مرحله ۲- Selenium IDE را باز کرده و در Target Box خود “(“document.getElementById(“persist_box” را وارد نموده و روی Find کلیک کنید. Selenium IDE باید بتواند چک‌باکس “Keep me logged in” را موقعیت‌یابی کند. اگر چه قادر نیست داخل چک‌باکس را هایلایت نماید، اما Selenium IDE هنوز هم می‌تواند عنصر را با یک کادر مرزی سبز روشن مانند زیر نشان دهد.

Selenium Figure 8-16
Selenium Figure 9-2

موقعیت‌یابی بوسیله getElementsByName – DOM 

متد getElementById می‌تواند تنها یک عنصر در یک لحظه داشته باشد و آن عنصریست با یک ID که شما مشخص کرده‌اید. متد getElementsByName متفاوت است. این متد آرایه‌ای از عناصر را جمع‌آوری کرده است که نام آن عناصر را شما مشخص کرده‌اید. شما با استفاده از یک Index که از ۰ شروع می‌شود به هر یک از عناصر دسترسی خواهید داشت.

Selenium Figure 8-17
Selenium Figure 9-3

getElementById

  • این متد فقط یک عنصر را برای شما استخراج می‌کند.
  • این عنصر دارای یک ID است که در داخل پرانتزِ ()getElementById مشخص شده است.
Selenium Figure 8-18
Selenium Figure 9-4

getElementsByName

  • این متد مجموعه‌ای از عناصر را به شما ارائه می‌دهد که نام‌های آنها تمام یکسان است.
  • درست مانند آرایه، هر عنصر با یک Index که از ۰ شروع می‌شود.
  • شما می‌توانید عنصر مورد نظر خود را با درج شماره Index در براکت موجود در سینتکس getElementsByName، طبق جدول زیر مشخص کنید.

سینتکس

شرح

document.getElementsByName("name")[index]


* name = نام عنصر آنچنانکه توسط name' Attribute' آن تعریف شده است.
* index = یک عدد Integer که نشان می‌دهد کدام عنصر در آرایه getElementsByName استفاده می‌شود.

مرحله ۱- به صفحه HomePage مربوط به Mercury Tours رفته و با استفاده از آموزش‌های ارائه شده در جلسات قبل در مورد Username و Password لاگین نمایید. فایرفاکس باید شما را به صفحه Flight Finder منتقل کند.

مرحله ۲- با استفاده از Firebug، سه رادیوباتن در قسمت پایین صفحه (رادیو باتن‌های Economy Class، Business Class و First Class) را بررسی کنید. توجه داشته باشید که همه آنها دارای نام “servClass” هستند.

Selenium Figure 8-19
Selenium Figure 9-5

مرحله ۳- اجازه دهید ابتدا به رادیوباتن “Economy Class” دسترسی پیدا کنیم. بین تمام این سه رادیوباتن این عنصر در ابتدا آمده است، بنابراین Index آن ۰ است. در Selenium IDE ابتدا document.getElementsByName(“servClass”)[0]”  را تایپ کرده و سپس روی دکمه Find کلیک کنید. Selenium IDE باید بتواند رادیوباتن Economy Class را به درستی شناسایی کند.

Selenium Figure 8-20
Selenium Figure 9-6

مرحله ۴- شماره Index را به ۱ تغییر دهید. اکنون هدف شما به [document.getElementsByName (“servClass”) [1 تبدیل می‌شود. روی دکمه Find کلیک نمایید. حالا Selenium IDE باید بتواند رادیوباتن “Business Class” را به صورت زیر نشان دهد.

Selenium Figure 8-21
Selenium Figure 9-7

این یک آموزش طولانی مدت است. بنابراین قسمت‌های بعدی به محض آماده شدن علاوه بر اینکه در صفحه Home وبسایت اطلاعرسانی خواهد شد، به صورت دسته‌بندی شده از اینجا نیز در دسترس است.

ابوالفضل خواجه دیزجی

همچنین ببینید

Selenium

آموزش Selenium-قسمت هفدهم: Mouse Click Event و Keyboard Event و موضوع Action Class در Selenium WebDriver

در این بخش، ما رویداد کیبورد(Keyboard Event) و ماوس(Mouse Event) را در Selenium Webdriver آموزش …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *