To identify the ListBox on webpage, look for select tag and attribute should be 'multiple' to select multiple items and there will be option tag which contains each item in it.[as shown below]
How can we identify a ListBox on webpage:
WebElement val=driver.findElement(By.id("tools"));
Now let's get all the options from the ListBox
Select s=new Select(val); List<WebElement> allvals=s.getOptions();
allvals is having list of all the ListBox items in it.
Let's see some of the operations with ListBox
package controls; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.Select; public class ListBox { public static void main(String[] args) throws InterruptedException { WebDriver driver=new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://www.qavalidation.com/p/demo.html"); WebElement val=driver.findElement(By.id("tools")); Select s=new Select(val); List<WebElement> allvals=s.getOptions(); for(int i=0;i<allvals.size();i++) { Thread.sleep(1000); System.out.println("CheckBox:"+ allvals.get(i).getAttribute("value")); s.selectByIndex(i); //select one by one } //s.deselectAll(); s.deselectByIndex(1);//deselect 2nd item s.deselectByIndex(3);//deselect 4th item //select checkbox having value='Selenium' List<WebElement> selected = s.getAllSelectedOptions(); for(WebElement e:selected) { if(e.getText().equals("Selenium")==false) s.selectByVisibleText("Selenium"); } //s.selectByValue(value) System.out.println("Selected CheckBoxes only"); List<WebElement> selected1 = s.getAllSelectedOptions(); for(WebElement el:selected1) { System.out.println("CheckBox:"+ el.getAttribute("value")); } } }
OutPut:
CheckBox:qtp CheckBox:selenium CheckBox:white CheckBox:jmeter CheckBox:telerik CheckBox:codedui Selected CheckBoxes only CheckBox:qtp CheckBox:selenium CheckBox:white CheckBox:telerik CheckBox:codedui
No comments:
Post a Comment