web自动化系列-selenium find_elements定位方法详解(八)

接上文 : web自动化测试系列-selenium css_selector定位方法详解(七)-CSDN博客

前面已经介绍了8种定位方法 ,大多数情况下我们都会优先使用这8种方法 。

但有的时候在你选择定位元素时 ,会出现多个同样的定位属性和值 。而且你能选择定位也就这一种情况 。这种情况你只能使用它来进行定位 。

图中的这个元素只能使用class='sx2'定位 ,但是使用它来定位的话,就会出现定位到多个值的情况 。怎么办呢 ?

selenium提供了8种定位这种重复值的方法 。

 

1.find_elements的八种定位方法

谈到这8种方法 ,你就不得不了解前面的八种方法 ,通过对比我们可以看出它们的不同 。

总结以上方法,有以下3点需要注意 :

  1. 用法上和find_elment完全相同 ,虽然方法名有所不同 ,但用法上和find_element对应方法完全相同 ,可随意切换 。

  2. 定位后返回列表 :使用find_elements系列的方法定位 , 一般会返回多个元素 。而将这些元素都放在一个列表中 。所以 ,当获取其中的某一个元素时 ,就必须使用列表中的索引来获取 :list[index] .

  3. 它的使用场景:正常情况下 ,能使用find_element定位到的 ,就不会使用find_elements方法 ,它只是在find_element系列方法定位不到的情况下才会考虑使用 。

2.具体案例

需求:通过selenium完成对tpshop的登录操作,具体如下 :

  1. 进入首页,点击登录按钮 ,进入到登录页面

  2. 使用find_elements系方法定位用户名输入框,并输入账号,如13988888888

  3. 使用find_elements系方法定位确认密码输入框,并输入123456 。

  4. 使用find_elements系方法定位验证码输入框,并输入8888

  5. 点击登录按钮 ,进入我的账户页面 。


# 使用find_elements定位 ,返回的都是多个值,存放在列表汇中from selenium import webdriver
import time# 1. 创建浏览器对象
driver = webdriver.Chrome()
driver.maximize_window()# 2. 输入地址 :http://localhost
driver.get("http://localhost")driver.find_element_by_link_text("登录").click()
time.sleep(3)# 通过class属性获取到多个元素,这里的elem_lst是一个列表 ,列表中放了三个元素,分别为用户名、密码、验证码
elem_lst = driver.find_elements_by_class_name("text_cmu")
print("元素集:{}".format(elem_lst))# 输入用户名 :从列表中取第一个元素
elem_lst[0].send_keys("13988888888")# 输入密码 :从列表中取第二个元素
elem_lst[1].send_keys("123456")# 输入验证码 :从列表中取第三个元素
elem_lst[2].send_keys("8888")driver.find_element_by_class_name("J-login-submit").click()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端框架模板

前端框架模板 1、vue-element-admin vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 **功能:**https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能 **GitHub地址:**GitHub - PanJiaChen/vue-element-admin: :t…

机器学习实战-k近邻分类

k-近邻算法(KNN) 一。工作原理 存在一个样本数据集合,即训练样本集,并且样本集中每个数据都存在标签(样本集中每一数据与所属分类的对应关系), 输入没有标签的新数据后,将新数据的…

脚本开发与自动化运维----shell脚本开发及其在DevOps中的应用

一.正则表达式 正则表达式(Regular Expression、regex 或 regexp, 缩写为RE), 又称规则表达式,是计算机科学中的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如, a 到 z 之间的字母)和特殊字符(称为“…

信也科技网络自动化实践-网络策略管理

1、背景 随着各种法律法规和行业标准的出台和更新,企业或组织需要遵守各种安全合规性要求。网络安全策略管理需要符合这些要求,从而保障企业或组织的安全和合规性。网络安全策略管理需要涵盖企业或组织的整个网络生命周期,包括网络规划、设计…

场景文本检测识别学习 day04(目标检测的基础概念)

经典的目标检测方法 one-stage 单阶段法:YOLO系列、SSD系列 one-stage方法:仅预测一次,直接在特征图上预测每个物体的类别和边界框输入图像之后,使用CNN网络提取特征图,不加入任何补充(锚点、锚框&#x…

第二十章hive

1) 窗口函数 over(partition by 分组字段 order by 排序字段 rows between 起始行 and 结束行) 窗口计算范围的指定 需要使用rows 进行指定 计算行数 范围的确认: 默认情况下没有指定partition by 的字段,范围是全表&#xff…

Kafka 架构深入介绍 及搭建Filebeat+Kafka+ELK

目录 一 架构深入介绍 (一)Kafka 工作流程及文件存储机制 (二)数据可靠性保证 (三)数据一致性问题 (四)故障问题 (五)ack 应答机制 二 实…

蓝桥杯2024年第十五届省赛

E:宝石组合 根据给的公式化简后变为gcd(a,b,c)根据算数基本定理&#xff0c;推一下就可以了 然后我们对1到mx的树求约数&#xff0c;并记录约数的次数&#xff0c;我们选择一个最大的且次数大于等3的就是gcd int mx; vector<int> g[N]; vector<int> cnt[N]; int…

关于Cortex-M3单片机出现Fault故障,应该如何判断和解决

一、Fault故障的种类及检查思路 Cortex-M3单片机出现Fault故障可能是由于多种原因引起的&#xff0c;包括软件错误、硬件故障或者外部环境因素等。以下是一些常见的方法来判断和解决这些故障&#xff1a; 查看Fault类型&#xff1a;Cortex-M3处理器有多种Fault类型&#xff0c…

基于贝叶斯算法的机器学习在自动驾驶路径规划中的应用实例

目录 第一章 引言 第二章 数据准备 第三章 贝叶斯路径规划模型训练 第四章 路径规划预测 第五章 路径执行 第六章 实验结果分析 第一章 引言 自动驾驶技术的发展带来了自动驾驶车辆的出现&#xff0c;而路径规划作为自动驾驶车辆的关键功能之一&#xff0c;对于确定最佳行…

Android Dialog圆角设置无效的问题

一&#xff0c;参考 Android Dialog圆角设置无效的问题 https://blog.csdn.net/woshi_awei/article/details/99664527 Android自定义Dialog实现通用圆角对话框 https://cloud.tencent.com/developer/article/1740956 二&#xff0c;原因 Diallog的默认背景是白色&#xff0…

JVM之JVM栈的详细解析

Java 栈 Java 虚拟机栈&#xff1a;Java Virtual Machine Stacks&#xff0c;每个线程运行时所需要的内存 每个方法被执行时&#xff0c;都会在虚拟机栈中创建一个栈帧 stack frame&#xff08;一个方法一个栈帧&#xff09; Java 虚拟机规范允许 Java 栈的大小是动态的或者是…

【Go】 编码解码基础,encoding标准库:base64、binrary、json、xml、gob、hex、pem、csv

目录 base64 binary json xml CSV GOB HEX PEM 总结 在 Go 语言中&#xff0c;encoding 标准库提供了多种用于数据编码和解码的包&#xff0c;如 asn1、base64、binary、json、xml 等。下面我将分别介绍这些包的基本使用方法。 base64 encoding/base64 包用于处理 Ba…

标准版uni-app移动端页面添加/开发操作流程

页面简介 uni-app项目中&#xff0c;一个页面就是一个符合Vue SFC规范的.vue文件或.nvue文件。 .vue页面和.nvue页面&#xff0c;均全平台支持&#xff0c;差异在于当uni-app发行到App平台时&#xff0c;.vue文件会使用webview进行渲染&#xff0c;.nvue会使用原生进行渲染。…

centos开机自启的方式总结

centos管理服务的开机自启的方式有这些&#xff1a; 1. systemctl systemctl使用enable/disable来开机自启和禁用开机自启&#xff1a; systemctl enable sshd 开机自动的配置文件存储在/etc/systemd下。 2.chkconfig 这个命令是用于简化服务的管理&#xff0c;和systemct…

用海豚调度器定时调度从Kafka到HDFS的kettle任务脚本

在实际项目中&#xff0c;从Kafka到HDFS的数据是每天自动生成一个文件&#xff0c;按日期区分。而且Kafka在不断生产数据&#xff0c;因此看看kettle是不是需要时刻运行&#xff1f;能不能按照每日自动生成数据文件&#xff1f; 为了测试实际项目中的海豚定时调度从Kafka到HDF…

ActiveMQ主从架构和集群架构的介绍及搭建

一、主从和集群架构的特点 1.1 主从架构的-Master/slave模式特点 读写分离&#xff0c;纵向扩展&#xff0c;所有的写操作一般在master上完成&#xff0c;slave只提供一个热备 1.2 集群架构-Cluster模式特点 分布式的一种存储&#xff0c;水平的扩展&#xff0c;消息的分布…

CCleaner怎么清理软件缓存 CCleaner清理要勾选哪些 ccleanerfree下载

CCleaner软件是一款优秀的数据清理软件&#xff0c;其中没有硬盘和内存的设置&#xff0c;也不含任何广告软件&#xff0c;其出色的注册表清洁功能能够保证您的电脑更稳定运行。本文将围绕CCleaner怎么清理软件缓存&#xff0c;CCleaner清理要勾选哪些的相关内容进行介绍。 一、…

计算机网络——DNS协议

目录 前言 前篇 引言 IP地址与域名 DNS协议的工作流程 DNS服务器节点之间是如何维护上下级关系的 前言 本博客是博主用于复习计算机网络的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结&#xff0c;讲的非…

将本地项目上传到Github

首先安装git、创建github账号 1、创建一个新的仓库 2、创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录&#xff0c;有的话看下里面有没有id_rsa和id_rsa.pub这两个文件&#xff0c;有就跳到下一步&#xff0c;没有就通过下面命令创建。 ssh-keygen -t rsa -C "you…