zoukankan      html  css  js  c++  java
  • web自动化测试---css方式定位页面元素

      css方式定位的方法也有很多,相较于xpath更灵活一点,下面就介绍下使用方法(以百度输入框为例)

    1、通过tag来定位,可以写成如下:

    driver.find_element_by_css_selector('input').click()
    

     这里要说明的是tag为input的必须唯一才能这么写,否则可以用其他方式定位

    2、通过id来定位,可以写成如下:

    driver.find_element_by_css_selector('#kw').click()
    

     id前面加个#即可,很简单,也可以和tag组合来写:

    driver.find_element_by_css_selector('input#kw').click()
    

    3、通过class来定位,可以写成如下:

    driver.find_element_by_css_selector('.s_ipt').click()
    

     也很简单,当然也可以和tag组合来写:

    driver.find_element_by_css_selector('tag.s_ipt').click()
    

    4、通过父子关系定位,可以写成如下

    driver.find_element_by_css_selector('span>input').click()
    

     这里是通过tag来做例子,其实对于父节点和子节点来说都可以各自按照1、2、3来写,中间用>来连接即可,这样更能保证元素的唯一性,比如:

    driver.find_element_by_css_selector('span>input#kw').click()
    

    5、还可以通过tag中除了id、class之外的其他属性来定位元素,如输入框通过name属性来定位:

    driver.find_element_by_css_selector('input[name="wd"]').click()
    

     属性可以带值,也可以不带,直接写成如下形式:

    driver.find_element_by_css_selector('input[name]').click()
    

    6、除了5中所示的形式,还可以对属性的值进行过滤,如下:

    name属性的值以w开头

    driver.find_element_by_css_selector('input[name^="w"]').click()
    

    name属性的值以d结尾

    driver.find_element_by_css_selector('input[name$="d"]').click()
    

     name属性的值包含w字符

    driver.find_element_by_css_selector('input[name*="w"]').click()
    

    基本上通过上面的css操作都能够唯一确定一个元素,当然也有特殊情况。这个需要具体问题具体对待。

    关于本篇内容如有转载请注明出处;技术内容的探讨、纠错,请发邮件到70907583@qq.com
  • 相关阅读:
    在生成安装和部署项目时出现“Unrecoverable Build Error”(不可恢复的生成错误)错误信息
    SqlHelper(带详细中文注释)
    原创企业级控件库之大数据量分页控件
    MSSql技巧之快速得到表的记录总数
    ASP.NET 程序中常用的三十三种代码
    团队项目开发"编码规范"系列文章
    信息系统项目管理系列之二:项目生命期和组织
    原创企业级控件库之组合查询控件
    C# 中的常用正则表达式总结
    asp.net页面生存周期
  • 原文地址:https://www.cnblogs.com/watertaro/p/9052869.html
Copyright © 2011-2022 走看看