Selenium自动化测试-3.元素定位(1)
——————·今天距2020年83天·——————
这是ITester软件测试小栈第53次推文
大家好
我是vivi小胖虎
今天继续selenium系列
实例示范
即学即用
学成之后
你就是整条gai最靓的仔
上篇文章我们介绍了selenium自动化测试-浏览器的一些基本操作,这次我们要分享的是对元素的定位,在一个页面中有很多不同的策略来定位一个元素,我们选择最合适的方法即可。
一个页面最基本组成单元是元素,想要定位一个元素,我们需要特定的信息来说明这个元素的唯一特征。
selenium 主要提供了8种定位元素方法:
find_element_by_id
find_element_by_name
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
find_element_by_xpath
我们先简单介绍浏览器怎么定位到元素上:
1.打开Chrome浏览器,按F12或浏览器右上角打开开发者工具。
(注:F12打不开的,看快捷键设置,比如Fn+F12打开)
2.打开开发者工具后,在开发者工具栏左上角点亮箭头,然后鼠标移动到想要定位的页面元素上,如图所示:
3.定位之后,就可以看到对应的元素属性信息了。
接下来依次介绍前6种定位方法:
1.find_element_by_id
id就像人的身份证一样,具有唯一性。当然,同一个页面发现两个相同的id也是有可能的,这取决于前端代码的规范程度。所以,通过id来查找元素相对可靠。
我们以百度页面的搜索框为例子,先定位到搜索框上,如下图:id=“kw”
接下来直接写代码,定位搜索框,且输入文本:
(补充:send_keys()表示模拟键盘输入文本)
运行之后,在搜索框输入了小胖虎,表示定位到了搜索框:
2.find_element_by_name
name定位和id定位类似,name就像人的名字一样,元素也会有name属性。
我们还是以百度搜索框为例,定位元素后发现, name="wd"。
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
实现代码如下:
运行后,在百度搜索框输入小胖虎,定位成功。
3.find_element_by_link_text
link_text通过文本链接定位元素。
以百度页面的右上角的的文本链接为例:
定位到“hao123”链接上:
<a href="https://www.hao123.com" target="_blank" class="mnav">hao123</a>
我们要取的是a标签中间的“hao123”。
运行之后,打开百度页面,然后点击hao123, 进入hao123页面。
补充:click()是指点击定位到元素之后,进行点击。
4.find_element_by_partial_link_text
partial_link_text方法和link_text类似,只不过是模糊匹配,有时候文本链接很长,我们截取文本的一部分进行定位即可,我们还是定位“hao123”链接元素:
<a href="https://www.hao123.com" target="_blank" class="mnav">hao123</a>
截取“hao”或“123”进行定位,代码如下:
运行后,启动浏览器,打开百度页面,等待2秒钟,打开hao123页面,定位成功。
5.find_element_by_tag_name
tag_name 顾名思义就是tag(标签)属性。
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
<a href="https://www.hao123.com" target="_blank" class="mnav">hao123</a>
上面的 input, a都叫标签,我们可以发现一个页面相同的标签很多。接下里我们用tag_name属性定位百度搜索框:
运行之后,发现报错了,是因为一个页面,相同的标签太多,想要定位到元素,必须具有唯一性,所以不太推荐使用tag name的方法。
6.find_element_by_class_name
class_name 通过类名定位。
百度搜索框为例,其中class="s_ipt"。
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
代码如下:
运行成功后,启动浏览器,打开百度页面,搜索框输入小胖虎,定位成功!
总结:今天介绍的6种定位方法,id定位是最高效也是首选的方法,没有id属性的话,再选择其他定位方法。
下一篇我们将介绍第7种定位方法——xpath定位,功能强大,你值得拥有。
最后是今天的分享:Jenkins持续集成实战视频及电子书
ITester软件测试小栈今日分享
分享内容
Jenkins持续集成实战视频及电子书
领取方式
微信公众号后台回复:20191009
有图有真相
以上
That‘s all
ITester软件测试小栈
往期内容宠幸
叮—这有一打让你666的测试终极资料包,请查收!
QQ空间面试题放送,速度教科书式扑街补救offer!
金九银十加薪季,测试题预热一波。
selenium自动化测试-1.selenium介绍及环境安装
selenium自动化测试-2.浏览器基本操作
速看,APP测试之ADB最全指南!
APP测试之Monkey压力测试(一)
APP测试之Monkey压力测试(二)
快来星标 置顶 关注我
T ester
想要获取相关资料和软件 ?
Q群:701841415
Selenium自动化测试-3.元素定位(1)相关推荐
- Selenium自动化测试-3.元素定位(3)
------·今天距2020年81天·------ 这是ITester软件测试小栈第55次推文 大家好 我是vivi小胖虎 前面已经介绍过7种元素定位方法 相信这些积攒堆积起来的技巧 都会在实际工作时 ...
- Selenium自动化测试-3.元素定位(2)
------·今天距2020年82天·------ 这是ITester软件测试小栈第54次推文 大家好 我是vivi小胖虎 今天我们学习xpath定位元素 如果你告诉我 不是你不想用selenium做 ...
- Selenium自动化测试-4.By定位及如何确定元素唯一
------·今天距2020年80天·------ 这是ITester软件测试小栈第56次推文 大家好 我是vivi小胖虎 今天是周六 然而又是上班的一天 不管怎样 学习的心态总是要有的 争取早日当上 ...
- Selenium自动化测试-设置元素等待
------·今天距2020年54天·------ 这是ITester软件测试小栈第75次推文 selenium中有三种时间等待: 强制等待:sleep 隐式等待:implicitly_wait 显示 ...
- python网页元素定位_用Selenium进行网页元素定位以及常用的定位元素的方法
用Selenium进行网页元素定位 一.前提条件: 下载.安装Selenium 二.编写定位网页元素的脚本(这里以定位百度网页的元素举例) 1.新建文本文档(可以用任意的文本编辑器,我这里用的是Pyc ...
- 【转载】selenium webdriver进行元素定位
原文:http://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或fi ...
- 使用selenium webdriver进行元素定位
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...
- Python+selenium自动化八大元素定位方法及实例(超详细)
目录 一.selenium模块中的find_element_by_id方法无法使用 二.Python+selenium自动化八大元素定位方法 使用场景: 1.通过id属性定位:driver.find_ ...
- Selenium UI自动化测试中元素定位不到的原因和解决方法汇总
文章目录 1.总览 2.元素定位不到的原因之[页面元素没有及时加载] 3.元素定位不到的原因之[页面元素不可见或不可点击] 4.元素定位不到的原因之[页面元素是动态的] 1.总览 原因 解决方法 没有 ...
最新文章
- python运维实战--跨堡垒机连接二级服务器上传文件
- Python Django URL逆向解析(通过模板页面逆向访问)代码示例
- BZOJ 4720: [Noip2016]换教室
- excel统计行数_值得收藏的6个Excel函数公式(有讲解)
- webpack源码分析(2)---- webpack\bin\webpack.js
- 那些用Go实现的分布式事务框架之DTM
- 分式混合运算20道题_FAG剖分式调心滚子轴承的性能
- [Python] argparse命令行解析器的使用
- PHP Cookbook读书笔记 – 第13章Web自动化
- 广东省30m二级分类土地利用数据(矢量)
- PAIP.利用SyncML协议来同步备份手机短信联系人.txt
- 揭秘硅谷传奇:惠普的创业故事
- python绘制缓和曲线_曲线标
- 含有非期望产出的ZSG-DEA模型
- Flink入门系列05-时间语义
- [RK3288][Android6.0] 调试笔记 --- apk安装添加黑名单
- 在Linux平台上搭建EasyDarwin,编译代码并简单部署
- “拼多多”惊爆重大Bug!程序员的眼泪,羊毛党的狂欢
- 卡莱特(深圳)招聘FPGA工程师
- 《微力无边》经典语录
热门文章
- 导入已有项目到svn
- swift函数的用法,及其嵌套实例
- Maven STS创建WEB项目
- 无人驾驶(大安全概念)
- ftk学习记(list篇)
- 嵌入式操作系统内核原理和开发(开篇)
- mysql支持多语言_多种语言连接MySQL-Go语言中文社区
- mysql查询单表的销售额_MYsql数据库单表百万数据量查询
- 冷却水的循环方式有哪几种_近“零”排放,Greentruss系统在水泥冷却循环水系统中的应用...
- Java nginx 双向ssl_Nginx配置单项SSL以及双向SSL