`

关于隐藏元素和多个元素的定位

阅读更多
一. 关于隐藏元素
   相信大家都碰到过定位一个当前hidden的元素。看到了很多方法,先总结一下,比较通用的肯定还是用JavascriptExecutor接口的方法了:
JavascriptExecutor js = (JavascriptExecutor) driver; 
   String myjs="document.getElementById('ctl00_c_NewMenu|1').click();";
   js.executeScript(myjs);
或者有值输入的可以这样
JavascriptExecutor js = (JavascriptExecutor) driver;
                        js.executeScript("arguments[0].value='2014-01-10';", driver
                                        .findElement(By.id("Search_EndTime")));
   具体JS脚本的写法也有很多了,可以多学习下JS的语法,句法等。在此因为主要是想写关于selenium的博客,暂且不多赘述了。

二. 关于多个元素
   关于多个元素,最常见的,可以利用Xpath定位器定位其所在节点的父节点,祖父节点或利用子节点定位,具体关于Xpath,我想分享下Selenium中文论坛的教程,地址如下:
1.
http://www.seleniumcn.cn/read.php?tid=7973
2.
http://www.seleniumcn.cn/read.php?tid=7982

   在这里我只讲一个最简单的例子好了,就是我们在定位多个元素,但多个元素有同一属性的时候,我们可以用一些XPath表达式去定位元素。例如,多个输入框:先用driver.findElements方法先把元素装到List里面取,然后,我们用//div[input][label][input]且满足//input[@type='text']的元素值,这样我们就可以把页面所有满足此条件的元素得到了。
List<WebElement> InputFields=driver.findElements(By.xpath("//div[input][label][input]//input[@type='text']"));
   然后我们给这些元素sendKeys就方便多了,
String [][] tab2=CMD1_getExcel_Step3(cmd,method);//The method to get array list tab2
for(int i=0;i<tab2.length;i++)
{
for(int j=0;j<tab2[j].length;j++)
{
        InputFields.get(i).sendKeys(tab2[i][j]);
}
}
分享到:
评论

相关推荐

    JavaScript Table行定位效果

    克隆一个元素用cloneNode就可以了,它有一个bool参数,表示克隆是否包含子节点。 程序第一步就是克隆原table: this._oTable = $(table);//源table this._nTable = this._oTable.cloneNode(false);//新table this._...

    jQuery详细教程

    $("#intro") id="intro" 的第一个元素 $("ul li:first") 每个 &lt;ul&gt; 的第一个 &lt;li&gt; 元素 $("[href$='.jpg']") 所有带有以 ".jpg" 结尾的属性值的 href 属性 $("div#intro .head") id="intro" 的 &lt;div&gt; 元素中的所有 ...

    软件界面设计工具_3款合集

    提供了多个属性设置入口,分别实现最常用属性设置、一般属性设置和高级属性设置功能。当然,UIDesigner不是专用来设计QQ的,其它的Windows客户端产品都在它的工作范围之内。总的来说呢,使用UIDesigner来制作原型是...

    JavaScript 浮动定位提示效果实现代码第1/2页

    程序特点 1,同一个提示框用在多个触发元素时,只需一个实例; 2,显示和隐藏分别有点击方式和触发方式选择; 3,能设置延时显示和隐藏; 4,有25种预设定位位置; 5,可在预设定位基础上,再自定义定位; 6,可设置...

    HTML5与CSS3基础教程(第8版)高清文字

    17.12 提供带备用内容的多个视频源 361 17.13 添加具有备用Flash的视频和音频 362 17.14 高级多媒体 366 17.15 更多资源 366 第18章 表格 368 18.1 结构化表格 368 18.2 让单元格跨越多列或多行...

    iron-overlay-behavior:将元素设置为带有可选背景的叠加层

    可以一次显示多个覆盖图。 有关请参见。关闭和取消可以通过关闭或取消隐藏叠加层。 关闭和取消之间的区别在于用户的意图。 关闭通常表示用户已确认叠加层上的内容。 默认情况下,只要用户在其外部点击或按退出键,...

    css入门笔记

    引用可以引用多个类名用空格隔开 类名1 类名2 "&gt; 4.id选择器 #id名{样式} 3.特殊选择器 1.群组选择器 #id ,.class{样式} 1.子选择器 #id&gt;.class{样式} 1.分类选择器 div .class{样式} 4.伪类选择器 ...

    关于jQuery参考实例 1.0 jQuery的哲学

    本文翻译自jQuery Cookbook (O’Reilly 2009) 1.0 The jQuery Philosophy jQuery的哲学是“写更少的代码,做更多的事情”,这一哲学可...比如下面这个例子:首先向用户隐藏一个元素,然后向这个隐藏了的元素内插入一些

    计算机二级公共基础知识

    在树结构中,每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。例如,在图1-1中,结点D,E,F均为叶子结点。 度 在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大...

    CSSpotlight-crx插件

    ★查找指定冗余样式CSS规则(即多个 以绝对定位的元素为中心的规则 定义相同的配色方案)。使用CSSpotlight,您可以在三个简单的步骤中完成所有这些: 1.输入一个或多个CSS样式属性。 2.单击“HTML元素”或“CSS...

    GUI Design Studio 3.0

    属性编辑程序使您能将每个元素进行自定义。 元素的自动生成功能。 您能在任何地方放置任何元素。 Edge snapping能通过“点击”对屏幕元素进行统一记录。 设计网格向您提供了简单的制作具有一致性设计布局的方法...

    JavaScript王者归来part.1 总数2

     3.5 定位代码和调用堆栈   3.6 浏览器捕获异常   3.7 总结   第二部分 JavaScript核心  第4章 语言结构  4.1 JavaScript的基本文法   4.2 常量和变量   4.3 表达式和运算符符   4.4 控制语句 句  ...

    超实用的jQuery代码段

    6.15 使用拖动方式选择多个元素 6.16 在两个Tab标签之间进行元素拖动 6.17 拖动表格选择多行数据 6.18 拖动表格时自动选中复选框 6.19 拖动表格行并放置到目标位置 6.20 表格的拖动排序 6.21 拖动调整控件的大小 ...

    periphery-label:在外围显示消息

    如果存在多个外围标签,它们将被组合在一起。 可以显示和隐藏。 参数: id(字符串):用于确定内容顺序(一致排序所需)PeripheryLabel.setToWindowTop() 确保标签位于窗口顶部。 固定的 CSS 定位并不总是保持不变...

    vue实现点击出现操作弹出框的示例

     封装一个组件,组件保护一个插槽,我们可以根据不同的场景,利用插槽随意在这个弹框里插入任何元素,这个弹框显示时根据我鼠标的点击位置,定位弹窗的位置,并在组件里面监听鼠标抬起事件,触发事件时将弹窗隐藏;...

    VC++常用的共用函数100多页

    45、当向列表框中添加多个项时如何防止闪烁 55 46、如何向编辑控件中添加文本 55 47、如何访问预定义的GDI对象 55 48、如何获取GDI对象的属性信息 56 49、如何实现一个橡皮区矩形 56 50、如何更新翻转背景颜色的文本...

    Android控件大全以及各布局空间的使用方式

    collapseColumns - 设置 TableLayout 内的 TableRow 中需要隐藏的列的列索引,多个用“,”隔开 stretchColumns - 设置 TableLayout 内的 TableRow 中需要拉伸(该列会拉伸到所有可用空间)的列的列索引,多个用“,...

Global site tag (gtag.js) - Google Analytics