Selenium webdriver SeleniumWebDriver中的鼠标悬停事件

Selenium webdriver SeleniumWebDriver中的鼠标悬停事件,selenium-webdriver,mouseover,Selenium Webdriver,Mouseover,我无法从菜单中显示子菜单 我尝试了以下方法 1) 我试过鼠标悬停的动作(很明显) 2) 我试过javascript执行器 问题是HTML组件只在鼠标上加载,所以无法设置HTML中不存在的元素的属性 我正在使用java 悬停动作效果很好,我已经编写了一些测试代码,您可以根据自己的需要进行修改,在这里单击“关于Milonic”选项卡中的“关于我们”链接 您需要的是带有ExpectedConditions的wait对象。它在这里等待菜单中的元素被单击 driver.get("https

我无法从菜单中显示子菜单

我尝试了以下方法 1) 我试过鼠标悬停的动作(很明显) 2) 我试过javascript执行器

问题是HTML组件只在鼠标上加载,所以无法设置HTML中不存在的元素的属性 我正在使用java

悬停动作效果很好,我已经编写了一些测试代码,您可以根据自己的需要进行修改,在这里单击“关于Milonic”选项卡中的“关于我们”链接

您需要的是带有
ExpectedConditions
wait
对象。它在这里等待菜单中的元素被单击

        driver.get("https://www.milonic.com/index.php");


        Actions action = new Actions(driver);

        WebElement hover = driver.findElement(By.id("el136"));      
        action.moveToElement(hover).build().perform();      

        WebDriverWait wait = new WebDriverWait(driver, 5);
        WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#tbl0 #pTR0 a")));
        element.click();

您也可以使用javascript executor本身,但您需要检查css属性并使用javascript对其进行操作。下面是一个关于如何操作它的示例……这里我们删除了css中元素的display none属性

((JavascriptExecutor) executeScript(“document.getElementsByClassName('放置 类名“)[0]。style.display='block';”


检查它是否适用于您……如果不适用,请向我们提供代码

javaexecutor(display:block)方法不起作用,因为隐藏元素的HTML直到鼠标结束时才加载。您是如何派生css定位器的?您所说的“派生”是什么意思?我想知道您使用了哪个工具来获取css定位器“#tbl0#pTR0 a”或者你是手工做的