大家好

我就是那个人见人爱,花见花开的阿里大叔

今天继续selenium系列

实例示范

即学即用

学成之后

你就是整条gai最靓的仔

这次我们要分享的是对元素的定位,在一个页面中有很多不同的策略来定位一个元素,我们选择最合适的方法即可。

一个页面最基本组成单元是元素,想要定位一个元素,我们需要特定的信息来说明这个元素的唯一特征。

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属性的话,再选择其他定位方法。


好了 学习也就到此结束了 想了解更多相关知识请关注我吧!下面是小编想对读者大大们写的一封信哦! 记住要认真读哦! 
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:

   ————————————————
「学习资料 笔记 工具 文档领取」


 扫描二维码,
备注“csdn999”
小姐姐邀你一起学习哦~~
和志同道合的测试小伙伴一起讨论测试技术

    一定一定一定 要备注暗号:CSDN999
   ————————————————


Selenium自动化测试-元素定位的八种方法,你知道的有几种?相关推荐

  1. Selenium Webdriver元素定位的八种常用方式

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

  2. 【转载保存】Selenium Webdriver元素定位的八种常用方式

    转载地址:https://www.cnblogs.com/qingchunjun/p/4208159.html

  3. 自动化测试元素定位的8种方法:

    自动化测试元素定位的8种方法: 1.通过id属性定位: find_element_by_id() 复数形式: find_elements_by_id() 2.通过name属性定位: find_elem ...

  4. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  5. selenium八大元素定位方法

    selenium八大元素定位方法 定位方式一 定位方式二 定位方式一 定位方式二 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与 ...

  6. selenium界面元素定位

    一.        Selenium界面元素定位 本文元素定位以das2为例 #导入包 from selenium import  webdriver #打开火狐驱动 driver=webdriver ...

  7. python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析

    背景: 在自动化化测试过程中,不方便准确获取页面的元素,或者在重构过程中方法修改造成元素层级改变,因此通过设置id准备定位. 一.python准备工作: 功能:用自动化的方式进行批量处理. 比如,你想 ...

  8. 自动化无法定位的原因_Appium Android 自动化测试 -- 元素定位

    自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到. Appium 定位方式和 selenium 一脉相承,selenium 中的定位方式App ...

  9. 超全面整理,Selenium 八大元素定位方式,(建议收藏反复使用)

    UI自动化测本质无非就是: 定位元素 -> 操作元素 -> 模拟页面动作 -> 断言结果 -> 生成测试报告. 所以我们做UI自动化的第一步就是定位元素,如果连元素都定位不到就 ...

最新文章

  1. rabbitmq安装完整版
  2. 二十四、爬取古诗网中的100首古诗文
  3. SVN 常用命令笔记
  4. swift3.0 post Json解析
  5. 《剑指Offer》 数值的整数次方
  6. 第二百五十八天 how can I 坚持
  7. android点击图片跳转页面底部,【报Bug】安卓底部选项卡webview模式下 点击跳转到某个页面后,会出现底部重叠的问题...
  8. Zabbix分布式监控系统使用总结
  9. Storm启动报错Internal Server Error
  10. STRING网站分析蛋白质相互作用
  11. Python_day04
  12. AD19绘制原理图(阻容,IC,排针)
  13. html中实现页面跳转代码怎么写,用JavaScript怎么实现页面跳转?
  14. MemSQL初体验 - 性能测试
  15. JavaScript和jQuery的基础知识和使用
  16. 好用的办公邮箱是提高工作效率的第一步
  17. Verilog语法之数学函数
  18. treeShaking和sideEffects详解
  19. JSFL 批量转化fla脚本文件
  20. 三极管电路共集、共基、共射的区别

热门文章

  1. 在 git 中如何配置用户信息
  2. openwrt 1407改IP
  3. jzoj5904. 【NOIP2018模拟10.15】刺客信条(并查集)
  4. 坚果U2Pro怎么样好不好,这篇都告诉你
  5. 0.96TFT驱动(st7735s)
  6. 11.Hexo博客框架初识入门到进阶
  7. 【机器学习】KNN算法及K值的选取
  8. react+flexible兼容分辨率
  9. 【SPOTO原创】 SPOTO TAC技术文档-NET.0001-PPPoE配置大全
  10. GreenDao,以及数据库升级方式