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 属性值

Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。 Requests是一个很实用的Python HTTP客户端库。 Lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的数据;lxml和正则一样,也是用C语言实现的,是一款高性能的python HTML、XML解析器,也可以利用XPath语法,来定位特定的 元素 及节点信息。 XPath 是一门在 XML 文档中查找信息的语言, XSLT 中的主要 元素 ,XQuery 和 XPointer 均构建于 XPath 表达式之上。 Selenium 是一个用于Web应用程序测试的工具。 Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,GoogleChrome,Opera,Edge等。 本文介绍了使用 Selenium 获取 网页 元素 信息的常用方法,包括 获取 元素 大小、文本内容、属性值、判断 元素 是否可见、可用、选中等。同时还介绍了 获取 当前 页面 URL 和 Title 的方法。这些方法对于 Web 应用程序测试和 页面 分析非常有用。 点击上方蓝色字体,关注我们 本文主要介绍 selenium 在爬虫脚本的实际应用。适合刚接触python,没使用过 selenium 的童鞋。(如果你是老司机路过的话,帮忙点个star吧)项目地址  https://github.com/Denon/sync... selenium 介绍  直接引用 selenium 官网的话: Selenium automates browsers. That's it... Selenium 环境配置好之后,我们就可以使用 Selenium 来操作浏览器,做一些我们想做的事情了。在我们爬取网页过程中,经常发现我们想要获得的数据并不能简单的通过解析 HTML 代码 获取 ,这些数据是通过 AJAX 异步加载方式或经过 JS 渲染后才呈现在 页面 上显示出来。这种情况下我们就可以使用 Selenium 来模拟浏览器浏览 页面 ,进而解决 JavaScript 渲染的问题。浏... 前言 selenium 是一个非常厉害的爬虫利器,不,简直是神器了,它可以自动的控制浏览器,但是你得告诉浏览器,你想干嘛,爬哪里,这时候就要用到 元素 定位了,在HTML中都有着不同的标签和属性, selenium 根据它们来确定你的意图,每个方式都对应两个方法8种方式1.通过 id 定位2.通过 name 定位3.通过 class 定位4.通过 tag 定位5.通过 link 定位6.通过 partial ... 在 Python 中,可以使用 Selenium 的 find_elements 方法来 获取 元素 个数 。 from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.example.com") # 获取 页面 中 id 为 "content" 的 元素 的所有子 元素 elements ... 一、什么是 Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制( selenium IDE),编写及运行( Selenium Remote Control)和测试的并行处理( Selenium Grid)。 Selenium 的核心 Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。 selenium ... 前言在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。「自动化测试」就是一个最好的例子。随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无... # 定位到table,并获得table中所有得tr 元素 menu_table = self.driver.find_element_by_xpath("//div[@class='datagrid-view1']/div[2]/div/table") rows = menu_table.find_elements_by_tag_name('tr') # pytho... 一、什么是 Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制( selenium IDE),编写及运行( Selenium Remote Control)和测试的并行处理( Selenium Grid)。 Selenium 的核心 Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。 selenium ... 在打开网页之后,我们通常要 获取 网页中的内容或者某个 元素 ,这时候我们就可以使用find_xxx_by_xxx函数来 获取 元素 了。 一、当我们 获取 单个 元素 时: 我们使用find_element_by_xxx函数来 获取 单个 元素 获取 到的是WebElement对象 find_element_by_id : 通过 元素 id 获取 find_element_by_name : 通过 元素 的name属性 获取 find... public class ElementsDemo { public static void main(String[] args) throws InterruptedException { //驱动配置 System.setProperty("webdriver.chrome.driver","D:\\driver\\chromedriver.ex...