鼠标点击 和 分页点击.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
鼠标点击 和 分页点击

在自动化测试过程中,由于javascript的使用,我们常常需要点击一些鼠标经过显示的菜单等元素,这时需要触发该元素的鼠标经过事件。使用WebDriver有以下两种实现。?1.使用Action?Java代码??public?void?moveToElement(WebDriver?driver,?By?locator)?{??????Actions?builder?=?new?Actions(driver);??????builder.moveToElement(driver.findElement(locator)).perform();??}??2.使用Sendkey?Java代码??public?void?moveToElement(WebDriver?driver,?By?locator)?{??????????driver.findElement(locator).sendKeys(Keys.DOWN);??}??说明:具体使用什么key,可以根据实际情况变化。例如左侧菜单可能是使用右箭头可以呼出子菜单。则应该使用Keys.RIGHT?Webdriver操作是很迅速的,假如一次moveTo你无法看到或者是无法进行操作,可以加上循环便可以达到效果。?UI TA: selenium webdriver + junit 鼠标悬停,出现另一个元素,点击这个元素的解决方法历经千辛万苦,终于解决了 UI TA(test automation)中的这个难题,必须记录一下。前提是:需要测试的这个页面是用google的angularjs写的。许多页面效果是用angularjs自带的一些事件结合css hover实现的。测试的?UI TA 框架用的是 selenium webdriver + junit。问题是:页面上有一个效果:点击一个按钮 A,出现一个 project 的列表 B,将鼠标悬停在任意一个 project 上,会出现这个 project 的所有datasource的列表。点击任意一个datasource,可以搜索这个datasource里面的数据。我现在就是要模拟这个操作,做了以下尝试:尝试一:利用 selenium 的 Actions 类的moveToElement(webElement) 方法模拟鼠标悬停。大概 10 次中有 1 次可以成功点击到指定的datasource。不成功的时候的效果是,好像鼠标在 project 上晃来晃去一样,datasource列表就一闪一闪的出现多次,但就是没法点击。我们怀疑可能是鼠标悬浮到了选中的webElement的边界上,所以导致效果不稳定,所以试过将鼠标 move to 指定的 offset,以确保到元素的中间地带,但是没有用。在网上查到有人说 action 的moveToElement是鼠标一闪而过的,这一句代码执行完了,鼠标就不在元素上面了。建议用jquery的mouseover(),鼠标会一直在元素上面。代码:[java]?view plaincopyactions?action?=?new?Actions(driver);??action.moveToElement(projectElement).moveByOffset(10,?3).build().perform();??尝试二:利用jquery的mouseover() 模拟鼠标悬停。尝试了很久,悬停的效果就是没有出现,后来才知道是因为测试页面的这个元素上没有用js绑定mouseover() 的事件,所以测试代码中的mouseover() 也不会起作用。[java]?view plaincopyJavascriptExecutor?js?=?(JavascriptExecutor)?driver;??String?jsStr?=?$(projectListDivullia:eq(?+?i+?)).mouseover();??js.executeScript(jsStr);??尝试三:有些 selenium API 的文档说有mouseover(),我找啊找啊找,发现 selenium1 是有mouseover(),selenium2 没有了,而且selenium1 和 selenium2 driver 启用的方式完全不一样了,不太好将 selenium1 嵌入进来。尝试四:WebDriver的 click() 对隐藏的元素是否生效。试过,结论是:不可以。尝试五:Javascript的 click() 对隐藏的元素是否生效。试过,结论是:可以。这样,问题就迎刃而解了,可以跳过鼠标悬停 project 这个步骤,直接点击datasource就行了。附代码:[java]?view plaincopypublic?stat

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档