1、熟悉前端基础
 
  • 代码和元素是一一对应关系,程序需要通过代码中的某些特征,获取目标元素并进行操作
  • 标签名     key = value      元素的属性和属性值
 
2、浏览器开发者工具
 
  • 目的:获取目标元素在页面内代码的相关信息的时候使用

    ①点击鼠标右键 —— 检查

    ②按F12

 
3、八大元素定位方法:
  1. id(唯一的)
  2. name
  3. class_name
  4. tag_name
  5. link_text
  6. partial_link_text
  7. XPath(通用)
  8. CSS(通用)
 
① 元素定位方法—id方法
 
  id定位就是通过元素的id属性来定位元素,id必须是唯一的,前提:元素有id属性
  当元素存在id属性时,优先使用id方法定位元素
 
  id定位方法:
 
    element = driver.find_element_by_id(id)
 
需求:打开注册页面,完成以下操作
1、使用id定位,输入用户名:admin
2、使用id定位,输入密码:123456
3、3秒后关闭浏览器窗口
 
补充:输入内容方法:元素对象.send_keys("内容")
 
 
②元素定位方法—name方法
 
  name定位就是根据元素name属性来定位,name的属性值是可以重复的,前提:元素有name属性
 
  由于元素的name属性值可能存在重复,必须确定其能够代表目标元素唯一性之后,方可使用
 
  name定位方法:

      element = driver.find_element_by_name(name)
 
需求:打开注册页面,完成以下操作
1、使用name定位,输入用户名:admin
2、使用name定位,输入密码:123456
3、3秒后关闭浏览器窗口
 
注意:当页面内有多个元素的特征值是相同的时候,定位元素的方法执行时,默认只会获取第一个符合要求的特征对应的元素
因此,定位元素时需要尽量保证使用的特征值能够代表目标元素在当前页面的唯一性
 
查看元素属性数量:
  • 1、在代码区域使用快捷键 Ctrl + F
  • 2、输入目标元素属性值           回车查看数量
 
③元素定位方法—class_name方法
 
  class_name定位是根据元素class属性值来定位元素,class定义元素的样式
  前提:元素有class属性
  注意:如果class有多个属性值,只能使用其中的一个
 
  class_name定位方法
    
          element = driver.find_element_by_class_name(class_name)
 
需求:打开注册页面,完成以下操作
1、使用class_name定位,输入邮箱:34234234@qq.com
2、使用class_name定位,输入密码:2343243
3、3秒后关闭浏览器窗口
 
注意事项:
    1、方法名是class_name, 但要找的是元素的class属性值
    2、如果元素的class属性值存在多个值,只能使用其中的任意一个
 
 
④元素定位方法—tag_name方法
 
  tag_name就是通过标签名来定位
  每一种标签一般在页面中会存在多个,所以不方便进行精确定位,一般很少使用
 
  tag_name定位方法:
 
      element = driver.find_element_by_tag_name(tag_name)
 
需求:打开注册页面,完成以下操作
1、使用tag_name定位,输入用户名:admin
2、使用tag_name定位,输入密码:123456
3、3秒后关闭浏览器窗口
 
注意:由于标签名的重复性过高,一般做精确定位时,都不会选择tag_name
 
⑤元素定位方法—
1、link_text定位
2、link_partial_link_text定位
 
1、link_text定位:只针对超链接元素,并且需要出入超链接的全部文本信息
   方法:
 
      element = driver.find_element_by_link_text(link_text)
      link_text: 为超链接的全部文本内容


2、link_partial_link_text定位:只针对超链接元素,并且需要出入超链接的部分文本信息
  方法  :
 
     element = driver.find_element_by_partial_link_text(partial_link_text)
       link_text: 为超链接的部分文本内容
       虽然是只传入部分文本信息,但是需要确定其唯一性,方可以使用    
 
需求:打开注册页面,完成以下操作
1、使用link_text定位(访问 新浪、网站)超链接,并点击
2、3秒后关闭浏览器窗口
 
补充:点击方法:元素对象.clink()
 
 
 
 

web自动化02-常见元素定位(不含xpath和css)的更多相关文章

  1. 【WEB自动化】【第一节】【Xpath和CSS元素定位】

    目前自动化测试开始投入WEB测试,使用RF及其selenium库,模拟对WEB页面进行操作,此过程中首先面对的问题就是对WEB页面元素的定位,几乎所有的关键字都需要传入特定的WEB页面元素,因此掌握常 ...

  2. Selenium的WebDriver API元素定位中的XPath和CSS

    元素的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的. 浏览器的常规操作 import time from selenium import webdriver # 打开浏览器 dr ...

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

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

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

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

  5. appium自动化测试之UIautomatorviewer元素定位

    appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...

  6. Web自动化 - 选择操作元素 2

    文章转自 白月黑羽教Python 前面我们看到了根据 id.class属性.tag名 选择元素. 如果我们要选择的 元素 没有id.class 属性, 这时候我们通常可以通过 CSS selector ...

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

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

  8. python+Appium自动化:H5元素定位

    问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...

  9. python+Appium自动化:id元素定位

    元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name cla ...

  10. 基于Selenium2+Java的UI自动化(3) - 页面元素定位

    一.几种网页定位方式 webdriver的页面定位很灵活,提供了8种定位方式: 其中,常见的有三种:id .cssSelector .xpath: 一个元素如果存在 id 属性,则这个 id 的值,在 ...

随机推荐

  1. springboot--yaml数据读取的三种方式

    结果:

  2. 因为手哆嗦,发现了一个关于Python逗号的隐藏用法

    python常规的用法,众多pythoner早已​熟烂于心,如: 1.当一个元组只有一个元素时 a = (1, ) 2.当表示解包一个容器时 a = [('amo', 1), ('bmo', 1)] ...

  3. Cannot read properties of undefined (reading 'toUpperCase')

    无法读取 JS 中未定义的属性"toUpperCase"|鲍比哈兹 (bobbyhadz.com) 根据其中的内容找到了答案:使用了未定义的属性去使用toUpperCase()函数 ...

  4. PHP微信三方平台-序章

    一 微信三方平台准备工作 参数说明: 1.登录授权的发起页域名:提供登录授权公众号的域名地址主开发地址 2.测试公众号列表:未全网发布之前只能添加测试公众号 3.授权事件后的接收URL: 这个地址只要 ...

  5. jQ的工具类方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Revit BIM模型在ArcGIS Pro中的数据组织及转换成SLPK后的图层结构解析

    ArcGIS Pro对Revit 数据有自己的一套分层方式. 在ArcGIS Pro中打开bim文件会发现都是按照相同的方式组织数据: 将rvt格式数据转换成SLPK格式后的数据结构(将slpk数据直 ...

  7. 线性规划与整数规划—R实现

    线性规划的R语言实现 R语言在针对各类优化模型时都能快速方便的求解,对运输问题.生产计划问题.产销问题和旅行商问题等都有专门的R包来解决.线性规划与整数规划的区别主要在于对决策变量的取值约束有所不同. ...

  8. 京东LBS推荐算法实践

    作者:京东零售 郑书剑 1.推荐LBS业务介绍 1.1 业务场景 现有的同城购业务围绕京东即时零售能力搭建了到店.到家两种业务场景.同城业务与现有业务进行互补,利用高频,时效性快的特点,可以有效提升主 ...

  9. python去掉重复值的方法--四种

    my_list = [1,1,1,1,2,3,3,3,4,5,5,56,6,7,77,7,5,5,3]# 集合法:缺点是结果会打乱原始数据的顺序print(set(my_list)) # 列表法:缺点 ...

  10. 1.封装PageHelper实现分页

    前言 这几天想着动手将一些技术融合到项目中,昨天思考了会儿,想起了我与亲戚的对话:我说:"我想将若依项目完整的实现一遍",亲戚给我反馈到"你没必要完整复现若依项目,而且你 ...