webdriver元素定位

一、id定位

说明:html规定id属性在整个html中必须是唯一的,id定位是通过元素的id属性来定位元素

前提:该元素存在属性

id定位元素的方法:find_element_by_id()

Id定位元素的实现步骤

1、导入selenium包-->from selenium import webdriver

2、导入time-->import time

3、实例化火狐浏览器-->driver = webdriver.Firefox()

4、打开特定页面-->driver.get(url)

5、调用id的定位方法-->driver.find_element_by_id("")

6、使用send_keys()方法传值-->.send_keys()

7、暂停3秒-->sleep(3)

8、关闭浏览器-->quit()

二、name定位

说明:html规定name属性来指定元素的名称,name属性值在当前文档中可以不是唯一的,name定位是根据元素的name属性来定位的。

前提:元素有name属性

name定位元素的方法:find_element_by_name()

name定位元素的实现步骤:同id定位

三、class_name定位

说明:html规定了class来指定元素的类名,用法和id,name类似。(id是唯一的)

前提:元素有class属性

class_name元素定位的方法:find_element_by_class_name()

四、tag_name定位

说明:html是由不同的tag组成,而每个tag都是指同一类,所以tag定位效率比较低,一般不建议使用,tag_name的定位就是指通过标签名来定位

tag_name的定位方法:find_element_by_tag_name()     返回结果:返回的结果是符合条件的第一个标签

五、link_text定位

说明:用来定位<a>标签</a>,定位超链接文本。需要是a标签中的全部文本。

link_text定位方法:find_element_by_link_text()

六、partial_link_text定位

说明:用来定位<a>标签</a>,模糊匹配,需要传入a标签的局部文本,且代表唯一性。

partial_link_text的定位方法:find_element_by_partial_link_text()

七、find_elements_by_XXX()定位 (其中element为复数)

作用:查找定位所有符合条件的元素

返回的定位元素为列表形式

说明:列表数据的读取需要指定下标

例子:使用tag_name 获取第二个元素

driver.find_elements_by_tag_name('input')[1]

八、xpath

实际项目中存在没有id和name属性的情况,并且id,name,class属性值为动态获取,随着加载的变化而变化,此时需要使用xpath和css定位。​Xpath​

1、xpath为xml path的简称,用来确定xml文档中某个节点位置的语言。

2、html可以看作是xml的一种实现,所以selenium用户可以使用这种强大的语言在web应用中定位元素

xml:一种标记语言,用于数据的存储和传递,后缀.xml结尾

xpath的定位策略:

1、路径定位

  • 相对路径:相对路径是以//开始的,后边必须跟标签名称或者*

绝对路径:绝对路径是以/开始,中间不能跳跃元素

2、利用元素定位

3、层级和属性结合

当父级含有属性,子级不含有属性的时候,需要通过父级来寻找子集 eg://*[@id = 'p1']/input (用相对路径寻找id属性为p1的标签下的标签为input的子标签)

4、属性与逻辑结合

当元素之前有相同的属性,使用and ://input[@id='p1' and @class='name'] (使用相对路径找到@id='p1' and @class='name'的input标签)

xpath定位的方法:driver.find_element_by_xpath()

xpah案例: 

5、xpath的延伸:

1)//*[text()='xxxxxxx']     查找到文本内容是xxxx的标签(其中文本内容是全部匹配)

2)//*[start-with(@属性名称,'xxxx')]    查找属性值以xxxx开头的 (//*[start-with(@id,'p')] )

3)  //*[contains(@属性名称,'xxxx')]     查找属性值包含xxx(//*[contains(@id,'word')] )其中xxxx为相连的字符

九、css定位

css:是一种语言,它用来描述html和xml的元素的显示样式

css:有两种书写形式:第一种是直接在html中进行书写,<style type='test/css'>.... 。第二种是书写成一个以css为后缀的文件。在css语言中有css选择器,可以利用选择器找到该元素。

在selenium中推荐使用css定位,因为比xpath要快。

css定位的方法:driver.find_element_by_css_selector()

其中css的选择器:id选择器,class选择器,元素选择器,属性选择器,层级选择器。

id选择器:必须使用#进行修饰(#id标签的值:#password)

class选择器:使用‘.’来修饰(.class标签的值:.password)前提是该标签必须有class属性

元素选择器:根据元素名称就行,直接使用标签名称;input

属性选择器:[id = userA],选择id为userA的标签

层级选择器:根据元素的父子关系来选择的     例如:p>input  返回所有p元素先的所有的input元素

其中的>可以用空格代替p input    (p [id = 'password']   返回p标签下面id为password的标签)

css延伸:input[id^='p']: id属性已p开头的input标签

input[id$='p']:id属性已p结尾的input标签

input[id*='p']:id属性包含的input标签

xpath和css对比:

总结selenium中的八种定位方法:

web自动化知识点-02相关推荐

  1. pythonselenium教程模拟鼠标和键盘_【02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

  2. 做Web自动化前,你必会的几个技能

    学习web自动化的前提条件:手工测试(了解各种测试的知识).学习编程语言.学习Web基础.学习自动化测试工具 .学习自动化测试框架 .需要掌握前端的一些知识,无论学习语言还是前端知识,都是为了接下来的 ...

  3. Day32 Web自动化进阶

    系列文章目录 Day01 软件测试基础总结 Day02 测试用例知识点总结(上) Day03 测试用例知识点总结(下) Day04 禅道-从安装到卸载 Day05 MySql的基础使用 Day06 M ...

  4. Get Offer —— 渗透测试岗试题汇总(Web相关知识点)

    点赞后看,养成习惯 喜欢的话 可以点个关注哟 你们的点赞支持对博主们来说很重要哦 !!! 为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 00 前情提要 01 Web相关知识点 1.漏洞类 2.情 ...

  5. 10行Python代码实现Web自动化管控

    目录 1.模块安装 2.模块使用 本博客将为各位分享Python Helium库,其是在 Selenium库基础上封装的更加高级的 Web 自动化工具,它能够通过网页端可见的标签.名称来和 Web 进 ...

  6. python selenium - web自动化环境搭建

    前提: 安装python环境. 参考另一篇博文:https://www.cnblogs.com/Simple-Small/p/9179061.html web自动化:实现代码驱动浏览器进行点点点的操作 ...

  7. Web自动化之Headless Chrome概览

    Web自动化 这里所说的Web自动化是所有跟页面相关的自动化,比如页面爬取,数据抓取,页面内容检测,页面功能测试,页面加载性能测试,页面回归测试等等,当前主要由如下几种解决方式: 文本数据获取 这就是 ...

  8. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作   1.1 用webdriver打开一个浏览器   1.2 最大化浏览器&关闭浏 ...

  9. Selenium Web 自动化 - 如何找到元素

    Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...

  10. python写web自动化_使用Python+selenium实现第一个自动化测试脚本

    原标题:使用Python+selenium实现第一个自动化测试脚本 最近在学web自动化,记录一下学习过程. 此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求. 环境 ...

最新文章

  1. TileList自动滚动指定单元格,可视部分
  2. 如何解决Linux下侦听端口被占用
  3. 【原创】Python 源文件编码解读
  4. RHEL7 kvm虚拟机桥接网络配置
  5. 安卓APP_ 布局(7) —— ViewPager翻页
  6. 防火墙的基础知识入门
  7. 解决ViewPager添加点击监听器无触发的问题
  8. 9. Document getElementsByName() 方法
  9. 重磅:国刊4区变1区!2021年中科院分区表正式公布!
  10. Android移动客户端性能测试浅谈——电量
  11. [百度空间] [转]内存屏障 - MemoryBarrier
  12. 几种常用App原型设计工具详解
  13. linux-Team-网卡绑定
  14. 红日安全 ATT&CK VulnStack靶场(三)
  15. 在 WPS Word中成功使用zetero
  16. 关于 ideaIU 20191.2的基本安装教程及破解
  17. Lesson 15 Fifty pence worth of trouble
  18. 数据交换平台开发之二功能需求
  19. LyX 发布撑持 CJK 的 1.5 正式版
  20. vue 中的indexof_vue的这段排序代码看着不是很懂, p = p.name.indexOf(searchperson)!== -1到底是什么意思...

热门文章

  1. 基于SpringBoot+Mybatis+Thymeleaf的信息管理系统
  2. SLAM_BA中重投影误差e 关于相机位姿扰动量δξ 的雅克比矩阵J 公式推导
  3. cartographer探秘第四章之代码解析(七)--- Cartographer_ros
  4. 回顾:饶毅教授的一次采访
  5. 综述|线结构光中心提取算法研究
  6. RxJava 的基本使用
  7. 单链表以及双向链表的操作
  8. 精读45-180程序转弯模板
  9. Java基本开发环境搭建(适合第一次使用)
  10. CMake Error at CMakeLists.txt:52 (PROJECT): No CMAKE_CXX_COMPILER could be found.