预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在自动化测试过程中,由于javascript的使用,我们常常需要点击一些鼠标经过显示的菜单等元素,这时需要触发该元素的鼠标经过事件。使用WebDriver有以下两种实现。1.使用Action Java代码 publicvoidmoveToElement(WebDriverdriver,Bylocator){ Actionsbuilder=newActions(driver); builder.moveToElement(driver.findElement(locator)).perform(); } 2.使用Sendkey Java代码 publicvoidmoveToElement(WebDriverdriver,Bylocator){ driver.findElement(locator).sendKeys(Keys.DOWN); } 说明:具体使用什么key,可以根据实际情况变化。例如左侧菜单可能是使用右箭头可以呼出子菜单。则应该使用Keys.RIGHT Webdriver操作是很迅速的,假如一次moveTo你无法看到或者是无法进行操作,可以加上循环便可以达到效果。 HYPERLINK"http://blog.csdn.net/hcx1234567/article/details/17605533"UITA:seleniumwebdriver+junit鼠标悬停,出现另一个元素,点击这个元素的解决方法 历经千辛万苦,终于解决了UITA(testautomation)中的这个难题,必须记录一下。 前提是:需要测试的这个页面是用google的angularjs写的。许多页面效果是用angularjs自带的一些事件结合csshover实现的。测试的UITA框架用的是seleniumwebdriver+junit。 问题是:页面上有一个效果:点击一个按钮A,出现一个project的列表B,将鼠标悬停在任意一个project上,会出现这个project的所有datasource的列表。点击任意一个datasource,可以搜索这个datasource里面的数据。我现在就是要模拟这个操作,做了以下尝试: 尝试一:利用selenium的Actions类的moveToElement(webElement)方法模拟鼠标悬停。大概10次中有1次可以成功点击到指定的datasource。不成功的时候的效果是,好像鼠标在project上晃来晃去一样,datasource列表就一闪一闪的出现多次,但就是没法点击。我们怀疑可能是鼠标悬浮到了选中的webElement的边界上,所以导致效果不稳定,所以试过将鼠标moveto指定的offset,以确保到元素的中间地带,但是没有用。在网上查到有人说action的moveToElement是鼠标一闪而过的,这一句代码执行完了,鼠标就不在元素上面了。建议用jquery的mouseover(),鼠标会一直在元素上面。代码: [java]HYPERLINK"http://blog.csdn.net/hcx1234567/article/details/17605533"\o"viewplain"viewplainHYPERLINK"http://blog.csdn.net/hcx1234567/article/details/17605533"\o"copy"copy actionsaction=newActions(driver); action.moveToElement(projectElement).moveByOffset(10,3).build().perform(); 尝试二:利用jquery的mouseover()模拟鼠标悬停。尝试了很久,悬停的效果就是没有出现,后来才知道是因为测试页面的这个元素上没有用js绑定mouseover()的事件,所以测试代码中的mouseover()也不会起作用。 [java]HYPERLINK"http://blog.csdn.net/hcx1234567/article/details/17605533"\o"viewplain"viewplainHYPERLINK"http://blog.csdn.net/hcx1234567/article/details/17605533"\o"copy"copy JavascriptExecutorjs=(JavascriptExecutor)driver; StringjsStr="$('projectListDiv>ul>li>a:eq("+i+")').mouseover()"; js.executeScript(jsStr); 尝试三:有些seleniumAPI的文档说有mo