测试需求:

获取页面中下拉框个数,并验证是否与预期个数一致

方法1:因下拉框的tagname属性值为select,可通过获取标签为select的元素来获取下拉框个数

  1.  
    List<WebElement> elements = driver.findElements(By.tagName("select"));
  2.  
    int number=elements.size();
  3.  
    Assert.assertEquals(number,12);//验证是否为12

方法2:因下拉框默认显示“请选择”,可通过获取页面的“请选择”元素来获取下拉框个数。

  1.  
    List<WebElement> elements = driver.findElements(By.xpath("//*[text()='请选择']"));
  2.  
    int number=elements.size();
  3.  
    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获取页面指定元素个数的更多相关文章

  1. 给HTML页面指定元素添加属性,添加父元素

    给HTML页面指定元素添加属性,添加父元素 下面拿一个给富文本中所有的图片增加layer弹窗效果. 思路: 给富文本父元素设置属性. 获取父元素里所有的img   此处用到querySelectorA ...

  2. selenium 获取页面<input>标签的个数和各个属性的值

    获取页面某个标签的数量.id.name.class的值,来辅助定位         List<WebElement> lw =driver.findElements(By.tagName( ...

  3. 用 DOM 获取页面的元素方法集合

    document.getElementById('id名')            // 获取页面设置指定 id 的元素 document.getElementsByTagName('标签名')    ...

  4. JS(基础)_总结获取页面中元素和节点的方式

    一.前言 1.元素和节点的区别 2.总结获取元素的方式 3.总结获取节点的方式 二.主要内容 1.结点和元素的区别 (1)一些常见基本概念: 文档:document 元素:页面中所有的标签 结点:页面 ...

  5. selenium获取页面通过样式隐藏获取不到元素解决方案

    如图更换图像这个按钮通过bottom:-30px隐藏了,通过如下代码获取不到页面元素,后台会报错 driver.findElement(By.className("js-avator-lin ...

  6. selenium处理页面select元素

    selenium为网页中选择框元素的获取特别引入了一个Select对象, 引入对象的方式: from selenium.webdriver.support.ui import Select 查询文档可 ...

  7. selenium 滑动页面至元素可见

    滚动页面 在自动化操作中,如果web页面过长,而我们需要的元素并不在当前可视页面中,那么selenium就无法对其进行操作:此时,我们就需要像平时操作浏览器一样来滚动页面,使我们需要操作的对象可见! ...

  8. 获取页面定位元素left top

    1原生方法: 第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,但是有局限性,这种获取的方法只能获取到行内样式的left和top的属性值,不能获取到style ...

  9. sql获取数组指定元素

    需求:获取字符数组1,2,3的第2个元素 方法:通过自定义函数来实现 /* 获取字符串数组某个元素 */ from sysobjects where id = object_id('Get_StrAr ...

随机推荐

  1. CF1185F Two Pizzas

    CF1185F Two Pizzas 洛谷评测传送门 题目描述 A company of nn friends wants to order exactly two pizzas. It is kno ...

  2. 修改gradle中央仓库,加快jar包下载速度

    打开gradle项目的build.gradle文件 找到repositories,注释掉mavenCentral(),使用阿里云的仓库地址 repositories { //mavenCentral( ...

  3. Redis的Sorted-Sets排行榜功能实现

    Redis的ZSet排行榜功能实现 1. 功能需求 类似给用户n张图片, 用户左滑不喜欢右滑喜欢.所以每个用户就会有一些喜欢的图片集合和不喜欢的图片集合.现在我们要做一个将按照一个算法将喜欢的排到前面 ...

  4. HTML连载21-序选择器上

    解释CSS3 中新增的选择器中最具有代表性的就是序选择器,大致可以分为两类: (1)同级别的第几个(2)同类型的第几个 先写一个公共代码 <body> <h1>优秀</h ...

  5. svg path 解析

    <pre><svg width="100%" height="100%" version="1.1" xmlns=&quo ...

  6. 八、Spring之深入理解声明式事务

    Spring之深入理解声明式事务 何为事务? 事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用. 事务的四个属性: 1.原子性(atomicity) 事务是原子性操 ...

  7. Salesforce学习之路(八)一次拉取多个文件或全部文件至本地

    在开发中,经常会遇到本地工程错乱或者误操作导致本地本地项目被删除,此时利用SFDX: Retrieve Source from Org只会拉取新建并且名称相同的组件,若通过创建一个个文件,然后再拉取的 ...

  8. Easyui datagrid扩展子网格detailview增删改查详解

    话不多gang,先上代码,将以下三个属性插入主网格的初始化参数中: view : detailview, //1 detailFormatter : function(index, row) { // ...

  9. docker安装kafka

    文本摘自此文章 .kafka需要zookeeper管理,所以需要先安装zookeeper. 下载zookeeper镜像 $ docker pull wurstmeister/zookeeper .启动 ...

  10. C++调用linux命令并获取返回值

    qt中封装了相关的方法, 但是因为我的命令中用到了管道命令, 出现了非预期结果, 所有改用了linux系统原生的方法. 下边是一个判断某进程是否存在的例子. 当前存在一个问题,当linux返回多行时, ...