——————·今天距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)相关推荐

  1. Selenium自动化测试-3.元素定位(3)

    ------·今天距2020年81天·------ 这是ITester软件测试小栈第55次推文 大家好 我是vivi小胖虎 前面已经介绍过7种元素定位方法 相信这些积攒堆积起来的技巧 都会在实际工作时 ...

  2. Selenium自动化测试-3.元素定位(2)

    ------·今天距2020年82天·------ 这是ITester软件测试小栈第54次推文 大家好 我是vivi小胖虎 今天我们学习xpath定位元素 如果你告诉我 不是你不想用selenium做 ...

  3. Selenium自动化测试-4.By定位及如何确定元素唯一

    ------·今天距2020年80天·------ 这是ITester软件测试小栈第56次推文 大家好 我是vivi小胖虎 今天是周六 然而又是上班的一天 不管怎样 学习的心态总是要有的 争取早日当上 ...

  4. Selenium自动化测试-设置元素等待

    ------·今天距2020年54天·------ 这是ITester软件测试小栈第75次推文 selenium中有三种时间等待: 强制等待:sleep 隐式等待:implicitly_wait 显示 ...

  5. python网页元素定位_用Selenium进行网页元素定位以及常用的定位元素的方法

    用Selenium进行网页元素定位 一.前提条件: 下载.安装Selenium 二.编写定位网页元素的脚本(这里以定位百度网页的元素举例) 1.新建文本文档(可以用任意的文本编辑器,我这里用的是Pyc ...

  6. 【转载】selenium webdriver进行元素定位

    原文:http://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或fi ...

  7. 使用selenium webdriver进行元素定位

    在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...

  8. Python+selenium自动化八大元素定位方法及实例(超详细)

    目录 一.selenium模块中的find_element_by_id方法无法使用 二.Python+selenium自动化八大元素定位方法 使用场景: 1.通过id属性定位:driver.find_ ...

  9. Selenium UI自动化测试中元素定位不到的原因和解决方法汇总

    文章目录 1.总览 2.元素定位不到的原因之[页面元素没有及时加载] 3.元素定位不到的原因之[页面元素不可见或不可点击] 4.元素定位不到的原因之[页面元素是动态的] 1.总览 原因 解决方法 没有 ...

最新文章

  1. python运维实战--跨堡垒机连接二级服务器上传文件
  2. Python Django URL逆向解析(通过模板页面逆向访问)代码示例
  3. BZOJ 4720: [Noip2016]换教室
  4. excel统计行数_值得收藏的6个Excel函数公式(有讲解)
  5. webpack源码分析(2)---- webpack\bin\webpack.js
  6. 那些用Go实现的分布式事务框架之DTM
  7. 分式混合运算20道题_FAG剖分式调心滚子轴承的性能
  8. [Python] argparse命令行解析器的使用
  9. PHP Cookbook读书笔记 – 第13章Web自动化
  10. 广东省30m二级分类土地利用数据(矢量)
  11. PAIP.利用SyncML协议来同步备份手机短信联系人.txt
  12. 揭秘硅谷传奇:惠普的创业故事
  13. python绘制缓和曲线_曲线标
  14. 含有非期望产出的ZSG-DEA模型
  15. Flink入门系列05-时间语义
  16. [RK3288][Android6.0] 调试笔记 --- apk安装添加黑名单
  17. 在Linux平台上搭建EasyDarwin,编译代码并简单部署
  18. “拼多多”惊爆重大Bug!程序员的眼泪,羊毛党的狂欢
  19. 卡莱特(深圳)招聘FPGA工程师
  20. 《微力无边》经典语录

热门文章

  1. 导入已有项目到svn
  2. swift函数的用法,及其嵌套实例
  3. Maven STS创建WEB项目
  4. 无人驾驶(大安全概念)
  5. ftk学习记(list篇)
  6. 嵌入式操作系统内核原理和开发(开篇)
  7. mysql支持多语言_多种语言连接MySQL-Go语言中文社区
  8. mysql查询单表的销售额_MYsql数据库单表百万数据量查询
  9. 冷却水的循环方式有哪几种_近“零”排放,Greentruss系统在水泥冷却循环水系统中的应用...
  10. Java nginx 双向ssl_Nginx配置单项SSL以及双向SSL