Dip
Dip

Reputation: 57

How can i select and click SubMenu2 on mouse over MainMenu in Selenium

How can i select and click SubMenu2 on mouse over MainMenu in the menu given below?

I try with code given below but unable to select submenu2.Please help with your clues

Actions actions = new Actions(driver);

WebElement menuHoverLink = driver.findElement(By.cssSelector("#access > ul > li > a"));
actions.moveToElement(menuHoverLink);
WebElement subLink = driver.findElement(By.cssSelector("#access > ul > li > ul > li > a"));
actions.moveToElement(subLink);
actions.click();
actions.perform();

Upvotes: 0

Views: 3536

Answers (2)

Dip
Dip

Reputation: 57

I got the solutions as:

Actions actions = new Actions(driver);
WebElement menuHoverLink =  driver.findElement(By.cssSelector("#access  > ul > li:first-child> a"));

actions.moveToElement(menuHoverLink).build().perform();

By submenucss= By.cssSelector(("#access> ul> li:first-child > ul>  li:last-child a"));

WebDriverWait wait1 = new WebDriverWait(driver, 10);
wait1.until(ExpectedConditions.presenceOfElementLocated(submenucss));
WebElement submenu= driver.findElement(submenucss);
submenu.click();

Upvotes: 1

Paras
Paras

Reputation: 3235

see your main menu is getting opened using mousehover function and for submenu you just need to click on the required link, so you don't need to perform mouseHover on submenu link.. .you can do something like below:

Actions actions = new Actions(driver);
WebElement menuHoverLink = driver.findElement(By.cssSelector("#access > ul > li > a"));
actions.moveToElement(menuHoverLink).build().perform();
WebElement subLink = driver.findElement(By.cssSelector("#access > ul > li > ul > li > a"));
subLink.click();

This will solve your purpose.

Upvotes: 1

Related Questions