webdriver隐藏元素定位--getElementsByTagName

  在上一篇文章中我们提到有关隐藏元素的webdriver的定位方法--使用JS,这个时候可以用getElementById,getElementsByName和getElementsByTagName来定位,并同时可以调用相应的方法。

   在用getElementById,getElementsByName对元素进行定位操作的时候,方法相对简单,并在上篇文章中也有举例。但是用getElementsByTagName来定位就相对复杂一些儿,今天用到了这个方法,写了一段JS,嵌到对应该的webdriver脚本中才实现,现在给大家共享一下。

  问题:通过点击页面上的隐藏元素,展示下拉菜单,执行菜单上的操作。可是元素要鼠标移过去才会显示出来,并且此元素如:,没有ID和Name,Webdriver的mouseover不太好用,定位没有效果,如果定位不对,就会对隐藏元素进行操作,提示::"org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with"

   解决方案:通过js中的document.getElementByTaName来定位操作。

   String js="myDocumentElements=document.getElementsByTagName_r("body"); // 获得所有tagName是body的元素(当然每个页面只有一个)

             myBody=myDocumentElements.item(0);

             myBodyElements=myBody.getElementsByTagName_r("em");// 获得body子元素种的所有em元素

             myP=myBodyElements.item(9); //获得第九个em元素

             myP.click();"; // 执行其click()操作

   JavascriptExecutor jse= (JavascriptExecutor)driver;
   jse.ExecuteJs(js, "");  

转载于:https://www.cnblogs.com/eagleking0318/archive/2013/03/08/6521101.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值