UI自动化必不可少的操作——元素定位

  • 8大基础定位
driver.find_element_by_id()   # id定位
driver.find_element_by_name() # name定位
driver.find_element_by_class_name() # class名称定位
driver.find_element_by_tag_name() # 标签定位
driver.find_element_by_xpath() # xpath定位
driver.find_element_by_css_selector() # css定位
driver.find_element_by_link_text() # a标签的文本定位
driver.find_element_by_partial_link_text() # a标签的局部文本定位
  • xpath定位

  //*[]:// 相对定位      * 匹配任意标签

  第一种:id\class\name\其他属性,精确匹配

driver.find_element_by_xpath("//*[@id='']")           # id与id的值
driver.find_element_by_xpath("//*[@class='']") # class和class的值
driver.find_element_by_xpath("//*[@name='']")     # naem和值
driver.find_element_by_xpath("//*[@shuxingming='']") # 属性名和值

  第二种:模糊匹配\层级\索引\逻辑运算

  模糊匹配:

driver.find_element_by_xpath("//*[contains(text(),'测试')]")     # 包含某些字符
driver.find_element_by_xpath("//*[starts-with(text(),'测试')]")   # 以某些字符开头
driver.find_element_by_xpath("//*[ends-with(text(),'测试')]")     # 以某些字符结尾
driver.find_element_by_xpath("//*[matchs(text(),'测试')]")      # 正则匹配

  层级:

driver.find_element_by_xpath("//*[@id='']/p")

  索引:

driver.find_element_by_xpath("//*[@id='']/option[0]")

  第三种:绝对定位

  html/body/heard/div/divdiv/ul/li[2]/a      不推荐

  • css定位

  第一种:id\class\标签名

#:id

.:class

driver.find_element_by_css_selector("#username")     #id为username
driver.find_element_by_css_selector(".username") #class为username
driver.find_element_by_css_selector("iframe") #标签名为iframe

 第二种:

索引:
driver.find_element_by_css_selector("selet#nr>option:nth-child(1)") #标签名:nth-child(1)来定位子元素
层级:
driver.find_element_by_css_selector("selet#nr>option") #标签名:nth-child(1)来定位子元素
逻辑运算:
driver.find_element_by_css_selector("input#nr[id=''][class='']") #不用and连接,写在一起即可
  • 定位多组元素

 使用 find_elements ,结果为列表,使用下标索引方式取值

names=driver.find_elements_by_name("username")
print names[1]

  

做一棵小草,谁也撼动不了………

如果您觉得本篇文章还不错,欢迎点赞,转发分享,感谢(*^_^*)

web自动化之定位的更多相关文章

  1. web自动化常用定位和方法总结

    一. driver常用方法 二. 常用定位 三. 元素在页面不可见区域 四. iframe的操作 五. 页面弹出框:加等待时间 六. windows弹出框 七. 鼠标操作 八. 下拉列表 注意:下图中 ...

  2. web自动化之元素定位篇

    一.web自动化元素定位的方式有8种.------腾讯课堂 1.1 id定位: 1.2 class定位: 1.3 classname定位 1.4 tag_name 1.5

  3. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  4. Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」

    1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...

  5. 【WEB自动化测试之控件定位】基于HTML5控件的唯一控件属性定位

      一.WEB控件定位是什么 要想弄懂这个问题,我们还是基于实践来学习.我们先来看一条入门级别自动化测试用例的构成. DemoCase:正确用户名和密码登录博客园,登录成功 URL: https:// ...

  6. 【python+selenium的web自动化】- 8种元素定位方式详解

    ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. ​ 说明:以下操作统 ...

  7. Web自动化定位方法以及常用便捷操作

    很遗憾现在才开始给大家逐步分享自动化教程,原本计划着将现有的接口以及app.pc网页端进行自动化处理后再逐步给大家好好分享一下,由于当前实在没必要自动化操作了,所以临时用脑海中的知识再为大家继续更一篇 ...

  8. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  9. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

随机推荐

  1. docker中run和start的区别?

    docker run 后面指定的是一个镜像 而docker start指定的是一个容器 docker run是利用镜像生成容器,并启动容器,而docker start是启动一个之前生成过的容器

  2. nodejs串行无关联

    var async = require('async'); //串行无关联async.series({ one:function(cb) { setTimeout(function(){ consol ...

  3. MySQL保留2位小数

    1.round(x,d),四舍五入.round(x) ,其实就是round(x,0),也就是默认d为0 select round(110.35,1); # 110.4 2.TRUNCATE(x,d), ...

  4. 10、架构--keepalive、四层负载均衡

    笔记 1.晨考 1.HTTPS的作用,怎么实现的呢? 2.全栈部署HTTPS 只需在代理中部署HTTPS 3.反向代理 BBS 步骤 1.部署WEB机器 2.部署代理 4.如果 LB01 宕机了,怎么 ...

  5. [LeetCode]26.删除有序数组中的重复项(Java)

    原题地址: remove-duplicates-from-sorted-array 题目描述: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的 ...

  6. python的import语句

    1.import作用 import跟C/C++中的#include作用有点类似,都是为了调用定义在其他文件中的变量.函数或者类,但实现的区别很大. C/C++中如果a.cpp include了b.h那 ...

  7. 使用并发 ssh 连接来提升捞日志脚本执行效率

    问题背景 公司有个简单粗暴的日志服务,它部署在多台机器实例上,收集的日志记录在每台机器本地硬盘,写一个小时自动切换日志文件,硬盘空间写满了自动回卷,大约可以保存两三天的历史数据.为什么说它粗暴呢?原来 ...

  8. 关于 Xcode 更新 appleID 更换

    可能不少人会遇到 前一位同事走之后,他的 appID帐号下载的东西更新不了 下面给予大家一个解决办法  例如 Xcode  1.打开引用程序目录 2.找到Xcode,右键"显示包内容&quo ...

  9. kali Linux openvas忘记密码的解决方法

    1.先删除默认的admin帐号root@xxs:~# openvasmd --delete-user=admin User deleted. 2.创建admin帐号,默认会生成密码root@xxs:~ ...

  10. 从这3个方面考虑BI工具,选型一选一个准

    BI工具在很多场合都能听到,那么BI工具有什么功能呢?能给企业带来什么?好用的BI工具长什么样?今天跟着小编走近BI工具,一探究竟! 首先要了解BI工具的定义,什么是BI工具.BI工具是指利用现代数据 ...