6

How to select an element from a menu using Webdriver Selenium ? The Menu drop down shows up on Mouse Over?

4 Answers 4

7

You can check it in two ways: 1) first way is to use actions builder

WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).Click();
sbEle = driver.findElement(By.Id("sbEle")).Click();

Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.MoveToElement(mnEle).Perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).Click();

See here

2) another approach is to click directly needed element using jscript without simulating mouse hover event:

String cssLocatorOfTheElement=....//locator of the element to click on    
JavascriptExecutor js = (JavascriptExecutor) driver;
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.append("var x = $(\'"+cssLocatorOfTheElement+"\');");
            stringBuilder.append("x.click();");
            js.executeScript(stringBuilder.toString());

hope this works for you)

Sign up to request clarification or add additional context in comments.

1 Comment

With selenium-java-2.35: Actions builder = new Actions(driver); builder.moveToElement(driver.findElement(By.id("user-options"))).click(); builder.moveToElement(driver.findElement(By.id("log_out"))).click(driver.findElement(By.id("log_out"))); builder.perform(); If the simple .click() does not work, pass the Element to it, even if the cursor was moved there already.
0

Simulate mouseOver event and then select element you can like that:

var elementToShowMenu = Driver.FindElement(Byl.Id("some id")); 
new Actions(Driver).MoveToElement(elementToShowMenu).Release(elementToShowMenu).Build().Perform();
var menuElement = Driver.FindElement(Byl.Id("your menu id"));

Comments

0

Here is how I click a invisible anchor link on a tag: a link that is generated dynamically by Javascript:

public static void mouseClickByLocator( String cssLocator ) {
     String locator = cssLocator;
     WebElement el = driver.findElement( By.cssSelector( locator ) );
     Actions builder = new Actions(driver);
     builder.moveToElement( el ).click( el );
     builder.perform();
}

Comments

0
WebElement mnuElement;
WebElement submnuElement;
mnuElement = driver.findElement(By.cssSelector("insert selector here"));
submnuElement = driver.findElement(By.cssSelector("insert selector here"));

Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.moveToElement(mnuElement).perform();
// Pause 2 Seconds for submenu to be displayed
TimeUnit.SECONDS.sleep(2); //Pause 2 seconds
// Clicking on the Hidden submnuElement
submnuElement.click();  

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.