首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在鼠标悬停时无法保持元素。

在鼠标悬停时无法保持元素。
EN

Stack Overflow用户
提问于 2017-03-17 07:34:52
回答 2查看 1.2K关注 0票数 0

有一个鼠标悬停下拉,其中下拉显示在悬停和消失,如果鼠标指针是从下拉移动的方式。我尝试使用"Actions"类在下拉元素上悬停,但是在执行鼠标悬停之后,我看不到下拉菜单。在执行下一个动作之前,下拉式不会停留。

在执行悬停后是否存在等待,以便下拉显示时间更长,以便从下拉列表中选择/单击元素?

代码:

代码语言:javascript
复制
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);

环境:

代码语言:javascript
复制
Chrome version: 56.0.2924.87 (64-bit)
Chrome driver: 2.27
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-17 08:56:24

使用为鼠标悬停操作编写的相同代码,并在鼠标悬停操作之前尝试以下解决方案。

  • 将鼠标光标保持在任务栏上。 或
  • 将鼠标光标移动到(0,0)浏览器位置。
票数 0
EN

Stack Overflow用户

发布于 2017-03-17 09:01:37

在执行()之后,您需要遍历这些元素。

以下是工作代码:

代码语言:javascript
复制
package demo;

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.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class MouseHoverDemo_w3school {

    public static void main(String[] args) {



        System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://www.w3schools.com/howto/howto_css_dropdown.asp");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        WebElement ele = driver.findElement(By.xpath(".//div[@class='dropdown dropdown2']/button"));
        Actions act = new Actions(driver);
        act.moveToElement(ele).perform();
        List<WebElement> links = driver.findElements(By.xpath(".//div[@class='dropdown-content']/a"));
        int total_count = links.size();
        for (int i=0; i<total_count; i++)
        {
            WebElement element = links.get(i);
            String text = element.getAttribute("innerHTML");
            System.out.println("Link Name is : "+text);

        }

        driver.quit();
    }

}

如果这回答了你的问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42851745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档