How To Handle Bootstrap Drop Down In Java Selenium With Example Program?
package com.selenium.mix;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.python.modules.thread.thread;
public class BootstrapDropDown
{
public static void main(String[] args) throws InterruptedException
{
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("G:\\Testing_Utilities\\Selenium_Practice\\BootstrapDropdown.html");
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
driver.findElement(By.id("menu1")).click();
List<WebElement> li=driver.findElements(By.xpath(".//ul[@class='dropdown-menu']/li/a"));
for(WebElement el:li)
{
if(el.getText().equals("CSS"))
{
el.click();
Thread.sleep(3000);
System.out.println("Element Clicked");
break;
}
System.out.println(el.getText());
}
}
}
- package com.selenium.mix;
- import java.util.List;
- import java.util.concurrent.TimeUnit;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.firefox.FirefoxDriver;
- import org.python.modules.thread.thread;
- public class BootstrapDropDown
- {
- public static void main(String[] args) throws InterruptedException
- {
- WebDriver driver=new FirefoxDriver();
- driver.manage().window().maximize();
- driver.get("G:\\Testing_Utilities\\Selenium_Practice\\BootstrapDropdown.html");
- driver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
- driver.findElement(By.id("menu1")).click();
- List<WebElement> li=driver.findElements(By.xpath(".//ul[@class='dropdown-menu']/li/a"));
- for(WebElement el:li)
- {
- if(el.getText().equals("CSS"))
- {
- el.click();
- Thread.sleep(3000);
- System.out.println("Element Clicked");
- break;
- }
- System.out.println(el.getText());
- }
- }
- }
package com.selenium.mix;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.python.modules.thread.thread;
public class BootstrapDropDown
{
public static void main(String[] args) throws InterruptedException
{
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("G:\\Testing_Utilities\\Selenium_Practice\\BootstrapDropdown.html");
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
driver.findElement(By.id("menu1")).click();
List<WebElement> li=driver.findElements(By.xpath(".//ul[@class='dropdown-menu']/li/a"));
for(WebElement el:li)
{
if(el.getText().equals("CSS"))
{
el.click();
Thread.sleep(3000);
System.out.println("Element Clicked");
break;
}
System.out.println(el.getText());
}
}
}
Hi,
In the above same scenario I want to click all options under the bootstrap dropdown but for my case first condition under for loop is working but when I try to click for second option in that dropdown then stale element exception is throwing. My code is –
driver.findElement(By.xpath(“xxx”).click(); //click on drop down
List listOfOptions = driver.findElements(By.xpath(“/html/body/div[5] /div/table/tbody/tr/td/div/table/tbody/tr/td”));
int NumberOfOptions = listOfOptions.size();
for(int i=1;i<NumberOfOptions;i++){
if(listOfOptions.get(i).getText() .contains("Dog")) {
listOfOptions.get(i).click();
break;
}
}
driver.findElement(By.xpath("xxx").click(); // clicking the dropdown again to show the options
for(int i=1;i<NumberOfOptions;i++){
if(listOfOptions.get(i).getText().contains("Cat")){
listOfOptions.get(i).click(); // here getting the stale element exception
break;
}
}
================
I am not sure my code is correct or not. Please help me.