جمعه , ۱۰ فروردین ۱۴۰۳

آموزش Selenium-قسمت سیزدهم: انتخاب Radio Button و Check Box در Selenium WebDriver

Selenium
Selenium

در این آموزش، قصد داریم چگونگی شناسایی عناصر زیر را در یک فرم، بیاموزیم:

    • Radio Button
    • Check Box

Radio Button

Radio Buttonها را می‌توان با استفاده از متد ()click تغییر داد.

با استفاده از  این صفحه تمرینی، می‌ببینید که ()radio1.click می‌تواند Radio Button فعال را به “Option1” تغییر دهد. ()radio2.click نیز می‌تواند با ترک Radio Button فعال قبلی، Radio Button فعال را به “Option2” تغییر دهد.

Selenium Figure 13-1
Selenium Figure 13-1

Check Box

تغییر وضعیت Check Box به حالت On یا Off فقط با استفاده از متد ()click انجام می‌شود.

کد موجود در کادر زیر روی چک‌باکس “Keep me logged in” از Facebook دو بار کلیک کرده و سپس در زمانیکه وضعیت آن On است نتیجه را به صورت True باز می‌گرداند. در صورتیکه وضعیت آن Off باشد نتیجه False باز گردانده می‌شود. این کار برای شناسایی وضعیت جاری Check Box انجام می‌شود.

Selenium Figure 13-2
Selenium Figure 13-2
Selenium Figure 13-3
Selenium Figure 13-3

متد ()isSelected برای شناسایی این موضوع که آیا CheckBox در وضعیت On یا Off است استفاده می‌شود.

در این لینک مثال دیگری در این رابطه وجود دارد.

Selenium Figure 13-4
Selenium Figure 13-4

کد کامل

در اینجا یک کد کامل عملیاتی ارائه شده است.


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

public class Form {				
    public static void main(String[] args) {									
    		
    	// declaration and instantiation of objects/variables		
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");					
        WebDriver driver = new ChromeDriver();					

        driver.get("http://demo.guru99.com/test/radio.html");					
        WebElement radio1 = driver.findElement(By.id("vfb-7-1"));							
        WebElement radio2 = driver.findElement(By.id("vfb-7-2"));							
        		
        //Radio Button1 is selected		
        radio1.click();			
        System.out.println("Radio Button Option 1 Selected");					
        		
        //Radio Button1 is de-selected and Radio Button2 is selected		
        radio2.click();			
        System.out.println("Radio Button Option 2 Selected");					
        		
        // Selecting CheckBox		
        WebElement option1 = driver.findElement(By.id("vfb-6-0"));							

        // This will Toggle the Check box 		
        option1.click();			

        // Check whether the Check box is toggled on 		
        if (option1.isSelected()) {					
            System.out.println("Checkbox is Toggled On");					

        } else {			
            System.out.println("Checkbox is Toggled Off");					
        }		
         
        		
        		
        //Selecting Checkbox and using isSelected Method		
        driver.get("http://demo.guru99.com/test/facebook.html");					
        WebElement chkFBPersist = driver.findElement(By.id("persist_box"));							
        for (int i=0; i<2; i++) {											
            chkFBPersist.click (); 			
            System.out.println("Facebook Persists Checkbox Status is -  "+chkFBPersist.isSelected());							
        }		
		//driver.close();		
        		
    }		
}

عیب‌یابی(Troubleshooting)

اگر در هنگام یافتن عناصر با ()NoSuchElementException روبرو هستید، بدین معنیست که عنصر در این صفحه و در نقطه‌ای از صفحه که Web Driver بدان دسترسی دارد یافت نشده است.

۱- Locator خود را دوباره با استفاده از Firepath یا Inspect Element در Chrome بررسی کنید.
۲- بررسی کنید که آیا Valueای(مقدار) که شما در کد خود استفاده می‌کنید، با مقداری که اکنون در Firepath است متفاوت است یا خیر.
۳- برخی از Propertyها برای چند عنصر، پویا و دینامیک هستند. در این مورد، شما می‌بینید که Value متفاوت بوده و به صورت دینامیک تغییر می‌کند. شما می‌توانید از ()By.xpath یا ()By.cssSelector که راه‌های قابل اعتمادتر اما پیچیده‌تری هستند استفاده کنید.
۴- گاهی اوقات ممکن است چنین چیزی مساله Wait باشد، به عنوان مثال، WebDriver، کد شما را قبل از بارگذاری کاملِ صفحه اجرا کرده، و یا مسائل دیگری از این دست.
۵- با استفاده از implicit waitها یا explicit waitها یک wait قبل از ()findElement خود Add نمایید.

خلاصه

برای دسترسی به هر نوع عنصر مورد بحث در بالا اعم از Check Box یا Radio Button می‌توانید از ()click استفاده نمایید، که برای تغییر وضعیت عنصر مذبوز به حالت On یا Off کاربرد دارد.

 

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

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

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

Selenium

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

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

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

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