Duang!duangduang!把文章改成了原创,因为在群里得到了一个朋友的support, 所以有了这个解决方案,在我的gui 上面可以完美解决,列出来给大家做参考。
<span style="white-space:pre"> </span> mouseElement(By.xpath("//*[@id='904100']/span"), By.xpath("//*[@id='904130']/span") );
<pre name="code" class="java">
public WebDriver mouserElement(WebDriver driver,By by1,By by2)
{
Actions actions = new Actions(driver);
//点击主菜单
actions.moveToElement(driver.findElement(by1)).perform();
//JS脚本,点击二级菜单
WebElement men_element = driver.findElement(by2);
JavascriptExecutor JS =(JavascriptExecutor)driver;
JS.executeScript("arguments[0].click();", men_element);
return driver;
}
=======================================================================================================
以下部分为网上各类方法 转载过来 大多都试过, 我都失败了
========================================================================================================
在自动化测试过程中,由于javascript的使用,我们常常需要点击一些鼠标经过显示的菜单等元素,这时需要触发该元素的鼠标经过事件。使用WebDriver有以下两种实现。
1.使用Action
- public void moveToElement(WebDriver driver, By locator) {
- Actions builder = new Actions(driver);
- builder.moveToElement(driver.findElement(locator)).perform();
- }
2.使用Sendkey
- public void moveToElement(WebDriver driver, By locator) {
- driver.findElement(locator).sendKeys(Keys.DOWN);
- }
说明:具体使用什么key,可以根据实际情况变化。例如左侧菜单可能是使用右箭头可以呼出子菜单。则应该使用Keys.RIGHT
Webdriver操作是很迅速的,假如一次moveTo你无法看到或者是无法进行操作,可以加上循环便可以达到效果。
========================================================================================================
Selenium Webdriver 处理隐藏元素的问题
2013年02月25日
⁄ 综合 ⁄ 共 379字 ⁄ 字号
小 中 大
对于菜单中的下拉选项,鼠标悬浮时才显示出来。对于大部分这类情况,比如百度的知道页面(http://zhidao.baidu.com/),鼠标悬浮在“公社”上时,会弹出“财富商城”、“知道团队”等选项,调用action.moveToElement(element).build().perform();或action.keyDown(keys).build().perform();就可以解决。然而某些时候却不管用,这时可以借助javascript实现隐藏元素的点击操作,代码如下:
JavascriptExecutor js = (JavascriptExecutor) driver;
String myjs="document.getElementsByClassName('spacing')[0].click();";
js.executeScript(myjs);