【已解决】求助,请看看这个DIV层下的元素selenium-webdriver如何获取?
本帖最后由 vipwork 于 2012-10-11 16:54 编辑请大家帮忙看看用什么定位器可以获取到红框内的<a>元素。这个是一个第三级菜单来的,请看图
问题解决了。解决的方法如下:WebElement menu3 = driver.findElement(By.xpath("//a[@class='x-menu-item' and text()='流程']"));
actions.moveToElement(menu3);
actions.perform();当另一个问题又出现了,这个movetoelement方法非常不好用,貌似作用只是模拟鼠标滑过这个链接而已,并不能达到mouseover的效果,即鼠标停放在这个链接上的效果 经过两天不懈的努力,终于找到方法了。看来还是api看得太少啊。用下面代码可以模拟鼠标停放在链接上的效果。WebElement menu1 = driver.findElement(By.xpath("//a[@class='white' and text()='一级菜单']"));
//actions.moveToElement(menu1);
actions.clickAndHold(menu1);
actions.perform();
WebElement menu2 = driver.findElement(By.xpath("//a"));
//actions.moveToElement(menu2);
actions.clickAndHold(menu2);
actions.perform();
Thread.sleep(1000);
driver.findElement(By.xpath("//a[@class='x-menu-item' and text()='三级菜单']")).findElement(By.xpath("..")).click();
driver.findElement(By.xpath("//a[@class='x-menu-item' and text()='三级菜单']")).click();
再次回来说明一下,3楼贴的解决方法是有缺陷的。不过这个是selenium2与IE的兼容性问题。简答来说,当使用InternetExplorerDriver时,使用上面方法时,鼠标指针不能放在浏览器内,否则,将造成最后一步:driver.findElement(By.xpath("//a[@class='x-menu-item' and text()='三级菜单']")).click();
click第三级菜单抛异常:ElementIsNotVisibalException
具体可以参考下面贴中jim evans的回答:
https://groups.google.com/forum/?fromgroups#!topic/webdriver/WeuSwYemM4E
所以,在回放脚本使,鼠标指针最好停放在任务栏上,不过如果你不是用IE而是用FIREFOX的话,倒不用担心这个问题。其实说到底就是selenium2限制了fireeven的方法,实在是相当的不方便。另外,可以在selenium2中使用selenium1的方法:ISelenium selenium = new WebDriverBackedSelenium(driver, baseURL);
selenium.Start();
selenium.MouseOver(xpathA); 不错 用select 啥 Select select =new Select(driver.findElement(By.id("***")));
select.selectByVisibleText("流程");
你试试这种方式
页:
[1]