Selenium获取页面指定元素个数
测试需求:
获取页面中下拉框个数,并验证是否与预期个数一致
方法1:因下拉框的tagname属性值为select,可通过获取标签为select的元素来获取下拉框个数
- List<WebElement> elements = driver.findElements(By.tagName("select"));
- int number=elements.size();
- Assert.assertEquals(number,12);//验证是否为12
方法2:因下拉框默认显示“请选择”,可通过获取页面的“请选择”元素来获取下拉框个数。
- List<WebElement> elements = driver.findElements(By.xpath("//*[text()='请选择']"));
- int number=elements.size();
- Assert.assertEquals(number,12);//验证是否为12
xpath用法扩展:
1.contains
driver.findElement(By.xpath("//a[contains(@href, 'logout')]"));
寻找页面中href属性值包含有logout这个单词的所有a元素,其中@后面可以跟该元素任意的属性名。
driver.findElement(By.xpath("//*[contains(text(), '退出')]"));
直接查找页面当中所有的退出二字,根本就不用知道它是个a元素了。这种方法也经常用于纯文字的查找
如果知道超链接元素的文本内容,也可以用
driver.findElement(By.xpath("//a[contains(text(), '退出')]"));
2.starts-with
driver.findElement(By.xpath("//a[starts-with(@class, 'a')]"));
超链接上显示部分或全部文本信息时,可以使用。
寻找class属性以a开头的a元素。其中@后面的class可以替换成元素的任意其他属性.
3.关于网页中的动态属性的定位
a.starts-with
例子:input[starts-with(@id,'ctrl')] 解析:匹配以 ctrl开始的属性值
b.ends-with
例子:input[ends-with(@id,'_userName')] 解析:匹配以 userName 结尾的属性值
c.contains()
例子:Input[contains(@id,'userName')] 解析:匹配含有 userName 属性值
--------------------- 本文来自 朝天椒的夏天 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_15158911/article/details/54926682?utm_source=copy
Selenium获取页面指定元素个数的更多相关文章
- 给HTML页面指定元素添加属性,添加父元素
给HTML页面指定元素添加属性,添加父元素 下面拿一个给富文本中所有的图片增加layer弹窗效果. 思路: 给富文本父元素设置属性. 获取父元素里所有的img 此处用到querySelectorA ...
- selenium 获取页面<input>标签的个数和各个属性的值
获取页面某个标签的数量.id.name.class的值,来辅助定位 List<WebElement> lw =driver.findElements(By.tagName( ...
- 用 DOM 获取页面的元素方法集合
document.getElementById('id名') // 获取页面设置指定 id 的元素 document.getElementsByTagName('标签名') ...
- JS(基础)_总结获取页面中元素和节点的方式
一.前言 1.元素和节点的区别 2.总结获取元素的方式 3.总结获取节点的方式 二.主要内容 1.结点和元素的区别 (1)一些常见基本概念: 文档:document 元素:页面中所有的标签 结点:页面 ...
- selenium获取页面通过样式隐藏获取不到元素解决方案
如图更换图像这个按钮通过bottom:-30px隐藏了,通过如下代码获取不到页面元素,后台会报错 driver.findElement(By.className("js-avator-lin ...
- selenium处理页面select元素
selenium为网页中选择框元素的获取特别引入了一个Select对象, 引入对象的方式: from selenium.webdriver.support.ui import Select 查询文档可 ...
- selenium 滑动页面至元素可见
滚动页面 在自动化操作中,如果web页面过长,而我们需要的元素并不在当前可视页面中,那么selenium就无法对其进行操作:此时,我们就需要像平时操作浏览器一样来滚动页面,使我们需要操作的对象可见! ...
- 获取页面定位元素left top
1原生方法: 第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,但是有局限性,这种获取的方法只能获取到行内样式的left和top的属性值,不能获取到style ...
- sql获取数组指定元素
需求:获取字符数组1,2,3的第2个元素 方法:通过自定义函数来实现 /* 获取字符串数组某个元素 */ from sysobjects where id = object_id('Get_StrAr ...
随机推荐
- MySQL 行格式
以 MySQL 默认的存储引擎 InnoDB 为例 InnoDB 包含以下四种行格式 Compact Redundant Dynamic Compressed 指定行格式 CREATE TABLE 表 ...
- 2019 SDN阅读作业
2019 SDN阅读作业 1.为什么需要SDN?SDN特点? 答:因为随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议 ...
- Codechef September Challenge 2019 Division 2
Preface 这确实应该是我打过的比较水的CC了(其实就打过两场) 但由于我太弱了打的都是Div2,所以会认为上一场更简单,其实上一场Div的数据结构是真的毒 好了废话不多说快速地讲一下 A Eas ...
- 剑指offer:数据流中的中位数(小顶堆+大顶堆)
1. 题目描述 /** 如何得到一个数据流中的中位数? 如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值. 如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两 ...
- LeetCode 430:扁平化多级双向链表 Flatten a Multilevel Doubly Linked List
您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表.这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示. 扁平化列表,使所有结点 ...
- tensorflow之tf.meshgrid()
tf.meshgrid()用于从数组a和b产生网格.生成的网格矩阵A和B大小是相同的,它也可以是更高维的. 用法:[A, B] = tf.meshgrid(a, b), 生成size(b) x siz ...
- vue里面路由传参的三种方式
1.方式一 通过query的方式也就是?的方式路径会显示传递的参数 HTML的方式<router-link :to="{name:xxx,query:{page:1,code:8899 ...
- spring的@ControllerAdvice注解
@ControllerAdvice注解是Spring3.2中新增的注解,学名是Controller增强器,作用是给Controller控制器添加统一的操作或处理. 对于@ControllerAdvic ...
- Tomcat 简单容器化
Tomcat 容器化 思考 问题1 , Tomcat 容器化,Tomcat 如何配置 APR 连接器 Tomcat 的基础镜像已经是开启了 APR. 问题2, Tomcat 是每次都需要重新构建. 一 ...
- Binding ,抄自 http://www.cnblogs.com/cnblogsfans/archive/2011/02/19/1958586.html
1. 绑定到其它元素 <Grid> <StackPanel > <TextBox x:Name="textBox1" Height="150 ...