02RobotFramework测试环境搭建和web项目的关键字以及元素定位

1、准备web自动化测试环境

  1. 安装:pip install robotframework-seleniumlibrary

  2. 安装谷歌浏览器: https://www.google.cn/chrome/

  3. 安装谷歌浏览器驱动

    驱动一定要配套浏览器版本

  4. 将 SeleniumLibrary库导入测试套件

2、常规的关键字

在这里插入图片描述

3、元素定位

前提:元素或者属性必须唯一

八种元素定位方式:

(以百度为例)

id

Input Text    id=kw    id定位

name

#name定位
Comment    Input Text    name=wd    name定位

link_text

#link_text链接文本
Comment    Click Element    link=新闻

partial_link_text

#partial_link_text部分链接文本
Click Element    partial link=新

xpath(熟练)

  • 绝对路径定位:以 / 开头,从网页的开始标签往下查找,即html标签

    使用绝对定位查找,复制的路径有可能再打开的窗口找不到元素,所以需要从打开的窗口中定位元素

#绝对定位
Input Text    xpath=/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input    绝对定位
  • 相对路径定位:以 // 开头,相对路径是从网页的任意标签开始查询元素,一般都不是唯一的,所以需要结合其它方式定位

    • 相对路径+索引定位

      #相对路径+索引定位
      Input Text    xpath=//form/span[1]/input  相对路径+索引定位
      
    • 相对路径+属性定位

      #相对路径+属性定位
      Input Text    xpath=//input[@autocomplete='off'] 相对路径+属性定位
      
    • 相对路径+部分属性定位 (如果属性动态变化的,可以使用部分属性定位)

    #相对路径+部分属性定位(以xx开头)
    Input Text    xpath=//input[starts-with(@autocomplete,'of')] 相对路径+部分属性定位
    
    #相对路径+部分属性定位(以xx结尾)
    Input Text    xpath=//input[substring(@autocomplete,2)='ff'] 相对路径+部分属性定位
    
    #相对路径+部分属性定位(包含)
    Input Text    xpath=//input[contains(@autocomplete,'ff')] 相对路径+部分属性定位
    
    • 相对路径+通配符定位
    #相对路径+通配符定位
    Input Text    xpath=//*[@id="kw"] 相对路径+通配符定位
    

    不建议复制使用:

    1、复制的xpath全部是带通配符,性能很低

    2、复制的xpath通常比手写的复杂

    3、如果是动态属性,复制的xpath就完全失效了

    • 相对路径+文本定位
    #相对路径+文本定位
    Input Text    xpath=//span[text()='按图片搜索'] 相对路径+文本定位
    

css(掌握)

  • 绝对路径:基本完全不用
  • 通过ID(#)和class定位(.) 如果class属性中有空格需要使用.替换
#通过ID定位
Input Text    css=input#kw 通过ID定位
Input Text    css=#kw 通过ID定位
#通过class定位
Input Text    css=.s_ipt 通过class定位
Input Text    css=input.s_ipt 通过class定位
  • 相对路径:

    • 通过属性定位:
    css=input[autocomplete='off']
    
    • 通过部分属性值定位:
    #以什么开头
    css=input[autocomplete^='of']
    
    #以什么结尾
    css=input[autocomplete$='ff']
    
    #包含
    css=input[autocomplete*='ff']
    
    • 通过子节点定位(不建议使用,因为需要结合标签+id或者class使用,而且有时候会执行失败):
    #通过子节点定位
    css=form#form span.bg.s_ipt_wr.quickdelete-wrap input.s_ipt
    
    #通过子节点定位
    #定位到div标签,其中包含属性s-top-left,下的a标签子节点第七个
    css=div#s-top-left a:nth-child(7)
    
    • 通过兄弟节点定位:
    #通过兄弟节点定位
    #定位到div标签,其中包含属性s-top-left,下的a标签子节点第七个的下一个兄弟节点,也就是第八个
    css=div#s-top-left a:nth-child(7) +a
    

class_name

​ 几乎不使用

tag_name

​ 几乎不使用

#通过兄弟节点定位
#定位到div标签,其中包含属性s-top-left,下的a标签子节点第七个的下一个兄弟节点,也就是第八个
css=div#s-top-left a:nth-child(7) +a

class_name

​ 几乎不使用

tag_name

​ 几乎不使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值