Search code examples
eclipseselenium-webdriverhoverselenium-chromedrivermousehover

Unable to hold on an element on mouse hover


There is a mouse hover drop-down where the drop-down appears on hover and disappears if the mouse pointer is moved way from the drop-down. I tried using "Actions" class to hover on the drop-down element but i cannot see the drop-down after the mouse hover is performed. The drop-down doesn't stay till the next action is performed.

Is there any way where there is a wait after the hover is performed so that the drop-down appears for a longer time in order to select/click elements from the drop-down?

Code:

driver= new ChromeDriver();
driver.get("w3schools.com/howto/howto_css_dropdown.asp");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
WebElement element = driver.findElement(By.xpath(".//*@id='main']/div[3]/button")‌​);
Actions action= new Actions(driver); 
action.moveToElement(element).perform();
Thread.sleep(5000);

Environment:

Chrome version: 56.0.2924.87 (64-bit)
Chrome driver: 2.27

Solution

  • Use same code that you wrote for mouse hover action and try following solution before mouse hover action.

    • Keep mouse cursor on task bar.

      OR

    • Move mouse cursor at (0, 0) browser location.