zoukankan      html  css  js  c++  java
  • selenium python (二) 元素定位方法

    定位的原则就是:id name class 优先,强烈建议和前端哥哥搞好关系。定位就不是问题:实在不行就xpath和css大部分偶可以定位到。

    webdriver定位的方法是通过一个By类,By类中有许多的属性,常用的有已下几个:

    NO1.

    ID:dom元素首选的定位方式,id是唯一,定位速度快。(和fe处好关系,用id定位杠杠的)

     

    如By.id(“kw”) 就可以定位到百度的搜索框

    NO2.

    Name:表单定位为name首选,因为表单肯定会有一个name的属性。

    如上图中的百度搜索框,也可以用By.name(“wd”)来定位

    NO3.

    class 一般代表着某一种样式属性,所有很有可能是重复的,不能精准的定位By.classname(“s_ipt”)来定位。

    NO4.

    linktext 链接定位 (如果元素中间有空格 请注意)

     

    对于百度首页新闻这个链接,我们可以直接用By.linkText(“新闻”) 来查找

    NO5.

    xpath定位:辅助的工具 firefinder firepath 两个firefox的插件工具。

    第一种xpath:绝对路径式的定位 By.xpath("html/body/div/form/input")

    第二种xpath:相对的路径定位 By.xpath("//input") 一般要结合某些特定的属性值

    //input 找到所有的input

    @id=kw 是找到id属性=kw的

    例如 By.xpath("//input[@id='kw']")

    第三种xpath:使用部分属性值匹配:By.xpath("//input[starts-with(@id,'nice')]")

    By.xpath("//input[contains(@id,'白菜')]")

    xpath定位方法有些写的非常的长,如果不是非常熟知xpth的语法,请谨慎的使用。原因很简单,例如:By.xpath("html/body/div/form/input")这个地位的方式是绝对的定位,如果pm在其中去掉了一个属性,你的xpath就得重新的定位,xpath就使用不了。而且在茫茫多的xpath中,如何去寻找你哪一个出了问题,所以如果不懂xpath的语法,请谨慎。一切都是为了维护整个项目,简单简单!

    NO6.

    css定位:简单的介绍一下css的语法。

    介绍三个选择器:

    1.id的选择器:# 开头

    2.类的选择器:. 开头

    3.属性的选择器:[key=’value’]  

    By.cssSelector(“input[name=’username’]”);

     

    作为一个IT行业的人,一般使用的浏览器为chrome和firefox,chrome自带了审查元素功能和xpath和css路径的复制功能,当然也不是每一个都能复制成功。

    Firefox就可以扩展很多插件了:

     

    第一个firebug,在浏览器中右击就可以查看页面的元素。

     

     

    第二个fireFinder和firepath 都是寻找元素xpath路径的,我喜欢结合xpath语法然后去对比和验证自己寻找的元素路径对不对。

    安装后,按F12就可以看到如下:

     

    第三个如果你不喜欢打开新的页面,使用这个插件可以只在本页加载页面结果。

  • 相关阅读:
    Spring基于纯注解的声明式事务控制
    Spring基于XML的声明式事务控制
    2.Jersey
    1.解读REST和JAX-RS
    getHibernateTemplate和getSession 区别, this.getHibernateTemplate().getSessionFactory().getCurrentSession()和OpenSession区别
    eclipse安装maven报错
    MyEclipse10 + tomcat8 64位
    理解MVC
    java编程规范
    c3p0详细配置
  • 原文地址:https://www.cnblogs.com/dvbbs2012/p/5019657.html
Copyright © 2011-2022 走看看