Web UI自动化测试基础——元素定位(二)
本篇文章整理了元素定位的基础知识——多个元素定位方式。
一、多个元素定位方式简介
同单个元素定位方式相同,多个元素定位方式也有与之对应的8种方式,即id、name、class_name、tag_name、link_text、partial_link_text、xpath和css_selector。不同的是方法名中element需要写成复数形式。多个元素定位得到的结果通常是一个列表类型,可以通过索引方式访问具体元素。
二、实例
以百度首页为例,通过find_elements_by_tag_name方式进行演示。如图所示,共有15个标签名为input的元素,其中第8个是百度搜索框,第9个是‘百度一下’的搜索按钮,对应下标分别是7和8。

import time from selenium import webdriver # 创建driver实例
driver = webdriver.Chrome()
# 打开百度首页
driver.get('https://www.baidu.com')
# 通过tag_name属性找出百度首页中的所有input元素
inputs = driver.find_elements_by_tag_name('input')
# 打印inputs类型
print(type(inputs))
# 打印inputs长度
print(len(inputs))
# 遍历inputs,打印列表中的每个元素
for i in range(len(inputs)):
print('{0} : {1}'.format(i, inputs[i]))
# 在百度搜索框中输入input进行搜索
inputs[7].send_keys('input')
inputs[8].click()
# 等待2秒
time.sleep(2)
# 退出驱动程序并关闭浏览器
driver.quit()
Web UI自动化测试基础——元素定位(二)的更多相关文章
- Web UI自动化测试基础——元素定位(三)
本篇文章整理了元素定位的基础知识——iframe框架中的元素定位. 一.iframe框架元素定位 iframe是Html页面的内联框架,如果在自动化测试中无法定位到某个元素,那么很有可能是因为该元素在 ...
- Web UI自动化测试基础——元素定位(一)
本篇文章整理了元素定位的基础知识——单个元素定位方式. 一.单个元素定位方式简介 1. find_element_by_id 通过元素的id属性进行定位.以百度首页为例,首先进入https://www ...
- [原创]浅谈Web UI自动化测试
[原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...
- 简单Web UI 自动化测试框架 pyse
WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动 ...
- 【转】Web UI自动化测试原理
目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等. 这些框架都可以操作Web中的控件,模拟用户输入,点击等 ...
- 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解
目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...
- web自动化测试(java)---元素定位
和python类似,java-selenium也提供了很多种元素定位的方法,具体如下: findElement(By.id()) findElement(By.name()) findElement( ...
- web自动化:元素定位(二)
一. 实例 如何定位到下图第二个"抢投标",有一种方法是利用xpath定位 //a[@href="/loan/loan_detail/Id/7190.html" ...
- python ui自动化之元素定位和常用操作
做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...
随机推荐
- 如何替换B字段内包含A字段的那部分内容
Customer表A字段 varchar(50) 内容(客户姓名)B字段 varchar(1000) 内容(其他字符...客户姓名...其他字符)需要达到效果:将B字段中的客户姓名替换 ...
- 02/Oct/2019:11:55:28 类型的时间转换为
public static String upDataTime(String time) { Date upTime = new Date(); String newtime = null; Simp ...
- ZROI 19.08.11模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. dlstql,wsl A \(10pts:\) \(a=100,T=100\),对每个排列构造一个反的,一步到位即可. \(20pts ...
- java面向对象2-封装
2 封装 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,面向对象三大特点之一.好处: 防止数据被任意篡改,提高安全性 隐藏了实现细节,仅暴露方法 如何实现封装? 使用private关键字 ...
- 微信小程序-饮食日志_开发记录02
此段时间主要写功能的实现. 内部的增删改查等内容. 主要有食物查找.运动选择.身高体重比例计算等.
- Codeforces Round #568 (Div. 2) B. Email from Polycarp
链接: https://codeforces.com/contest/1185/problem/B 题意: Methodius received an email from his friend Po ...
- LDA主题模型评估方法–Perplexity
在LDA主题模型之后,需要对模型的好坏进行评估,以此依据,判断改进的参数或者算法的建模能力. Blei先生在论文<Latent Dirichlet Allocation>实验中用的是Per ...
- 阿里云服务器 CentOS 7.5 64位 docker安装redis集群
网上有很多教程可以参考,但是遇到坑了...... 最后参考这个教程成功了.https://www.cnblogs.com/hbbbs/articles/10028771.html 安装docker 参 ...
- Python如何快速初始化一个二维数组
正确的方法 cols= 3 rows = 2 memo = [[1] * m for i in range(n) ] 下面这种做法是错误的 memo = [[1] * m ] * n 这会导致 mem ...
- 计算器work_day05
day_work_05 ------Python是一个优雅的大姐姐 作业计算器 设计思路 按照运算优先级和正则先算括号内的值,提出来判断符号问题,然后依次计算. 分析题目设计了四个函数,分别为a)去括 ...