码迷,mamicode.com
首页 > 编程语言 > 详细

Python3.x:Selenium中的webdriver进行页面元素定位

时间:2018-01-28 00:11:23      阅读:584      评论:0      收藏:0      [点我收藏+]

标签:webdriver   driver   3.x   div   class   阅读   put   _id   enter   

Python3.x:Selenium中的webdriver进行页面元素定位

页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等。webdriver就是利用元素的这些属性来进行定位的。

可以用于定位的常用的元素属性:

  • id
  • name
  • class name
  • tag name
  • link text
  • partial link text
  • xpath
  • css selector

对应于webdriver中的定位一个元素方法分别是:

  • driver.find_element_by_name() 
  • driver.find_element_by_id() 
  • driver.find_element_by_class_name()
  • driver.find_element_by_tag_name() 
  • driver.find_element_by_link_text() 
  • driver.find_element_by_partial_link_text() 
  • driver.find_element_by_xpath() 
  • driver.find_element_by_css_selector()

相应的webdriver中的 定位一组元素的方法:

  • driver.find_elements_by_name()
  • driver.find_elements_by_id()
  • driver.find_elements_by_class_name()
  • driver.find_elements_by_tag_name()
  • driver.find_elements_by_link_text()
  • driver.find_elements_by_partial_link_text()
  • driver.find_elements_by_xpath()
  • driver.find_elements_by_css_selector()

使用示例:

  • id 和name 定位
    #id 
    driver.find_element_by_id(kw)  
    #name
    driver.find_element_by_name(tj_trnews)  
  • class name和tag name定位
    driver.find_element_by_class_name("s_ipt")  
  • link text 与partial link text 定位
    #通过linx text定位
    find_element_by_link_text("新闻")  
    find_element_by_link_text("贴吧")  
    #通过partail link text定位
    find_element_by_link_text("")  
    find_element_by_link_text("")  
  • XPath 定位
    ‘‘‘
    XPath是一种文档定位语言。因为HTML可以看做是XML的一种实现,所以selenium用户可使用这种强大的语言在web应用中定位。
    绝对路径方法:
    从根元素写起,当元素层级很深的时候,路径写的会很长,阅读性不好,也很难维护。不建议使绝对路径这样的方法。
    相对路径方法:
    通过Firebug很容易得到相对路径的xpath,打开Firebug插件,在页面上的搜索文本框,就可以显示出xpath了;
    ‘‘‘
    
    #通过xpath寻找,任意(*代表)id属性为’kw‘的元素
    driver.find_element_by_xpath("//*[@id=‘kw‘]").click() 
    #通过xpath寻找,任意(*代表)input属性为’kw‘的元素
    driver.find_element_by_xpath("//input[@id=‘kw‘]").click()  
    
    #需要根据上级目录的属性来定位当前元素
    #通过上一级目录的id 属性定位  
    find_element_by_xpath("//span[@id=’input-container’]/input") 
    #通过上三级目录的id 属性定位  
    find_element_by_xpath("//div[@id=’hd’]/form/span/input") 
    #通过上三级目录的name 属性定位 
    find_element_by_xpath("//div[@name=’q’]/form/span/input")
  • CSS定位
    #这种定位方法是比较难理解

     

 
 

 

Python3.x:Selenium中的webdriver进行页面元素定位

标签:webdriver   driver   3.x   div   class   阅读   put   _id   enter   

原文地址:https://www.cnblogs.com/lizm166/p/8367594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!