موقعیتیابی بوسیله (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 آن توجه داشته باشید.
میتوانید ببینید ID که باید استفاده کنید “persist_box” است.
مرحله ۲- Selenium IDE را باز کرده و در Target Box خود “(“document.getElementById(“persist_box” را وارد نموده و روی Find کلیک کنید. Selenium IDE باید بتواند چکباکس “Keep me logged in” را موقعیتیابی کند. اگر چه قادر نیست داخل چکباکس را هایلایت نماید، اما Selenium IDE هنوز هم میتواند عنصر را با یک کادر مرزی سبز روشن مانند زیر نشان دهد.
موقعیتیابی بوسیله getElementsByName – DOM
متد getElementById میتواند تنها یک عنصر در یک لحظه داشته باشد و آن عنصریست با یک ID که شما مشخص کردهاید. متد getElementsByName متفاوت است. این متد آرایهای از عناصر را جمعآوری کرده است که نام آن عناصر را شما مشخص کردهاید. شما با استفاده از یک Index که از ۰ شروع میشود به هر یک از عناصر دسترسی خواهید داشت.
getElementById
- این متد فقط یک عنصر را برای شما استخراج میکند.
- این عنصر دارای یک ID است که در داخل پرانتزِ ()getElementById مشخص شده است.
getElementsByName
- این متد مجموعهای از عناصر را به شما ارائه میدهد که نامهای آنها تمام یکسان است.
- درست مانند آرایه، هر عنصر با یک Index که از ۰ شروع میشود.
- شما میتوانید عنصر مورد نظر خود را با درج شماره Index در براکت موجود در سینتکس getElementsByName، طبق جدول زیر مشخص کنید.
سینتکس | شرح |
---|---|
document.getElementsByName("name")[index] |
|
مرحله ۱- به صفحه HomePage مربوط به Mercury Tours رفته و با استفاده از آموزشهای ارائه شده در جلسات قبل در مورد Username و Password لاگین نمایید. فایرفاکس باید شما را به صفحه Flight Finder منتقل کند.
مرحله ۲- با استفاده از Firebug، سه رادیوباتن در قسمت پایین صفحه (رادیو باتنهای Economy Class، Business Class و First Class) را بررسی کنید. توجه داشته باشید که همه آنها دارای نام “servClass” هستند.
مرحله ۳- اجازه دهید ابتدا به رادیوباتن “Economy Class” دسترسی پیدا کنیم. بین تمام این سه رادیوباتن این عنصر در ابتدا آمده است، بنابراین Index آن ۰ است. در Selenium IDE ابتدا document.getElementsByName(“servClass”)[0]” را تایپ کرده و سپس روی دکمه Find کلیک کنید. Selenium IDE باید بتواند رادیوباتن Economy Class را به درستی شناسایی کند.
مرحله ۴- شماره Index را به ۱ تغییر دهید. اکنون هدف شما به [document.getElementsByName (“servClass”) [1 تبدیل میشود. روی دکمه Find کلیک نمایید. حالا Selenium IDE باید بتواند رادیوباتن “Business Class” را به صورت زیر نشان دهد.
این یک آموزش طولانی مدت است. بنابراین قسمتهای بعدی به محض آماده شدن علاوه بر اینکه در صفحه Home وبسایت اطلاعرسانی خواهد شد، به صورت دستهبندی شده از اینجا نیز در دسترس است.