【发布时间】:2018-05-12 00:36:46
【问题描述】:
我无法从菜单中显示子菜单
我尝试了以下方法 1)我试过鼠标悬停动作(明显的一个) 2)我试过javascript执行器
问题是 HTML 组件仅在鼠标悬停时加载,因此无法设置 html 中不存在的元素的属性 我正在使用 java https://www.milonic.com/index.php
【问题讨论】:
标签: selenium-webdriver mouseover
我无法从菜单中显示子菜单
我尝试了以下方法 1)我试过鼠标悬停动作(明显的一个) 2)我试过javascript执行器
问题是 HTML 组件仅在鼠标悬停时加载,因此无法设置 html 中不存在的元素的属性 我正在使用 java https://www.milonic.com/index.php
【问题讨论】:
标签: selenium-webdriver mouseover
悬停动作效果很好,我编写了一些测试代码,您可以根据需要进行修改,这里点击“关于 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 执行器本身,但您需要检查 css 属性并使用 javascript 操作它下面是一个关于如何操作它的示例......这里我们已经删除了 CSS 中元素的 display none 属性
((Javascript执行器) driver).executeScript("document.getElementsByClassName('放置 类名')[0].style.display = 'block';");
检查它是否适合你......如果没有,请提供代码
【讨论】: