zoukankan      html  css  js  c++  java
  • python selenium-2 定位元素

    元素
    方法
    示例
    id
    find_element_by_id('su')
     
    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id('su').click()
    name
    find_element_by_name("wd")
     
    driver.get("http://www.baidu.com")
    driver.find_element_by_name("tj_trnews").click()

    class name

    find_element_by_class_name()
     不常用
    tagname
    find_element_by_tag_name()
    div form a相似的很多,也不常用 
    link text
    find_element_by_link_text("新闻")
     
    river.get("http://www.baidu.com")
    driver.find_element_by_link_text("新闻").click()
    partial link text
    find_element_by_partial_link_text("新闻")
    driver.get("http://www.baidu.com")
    driver.find_element_by_partial_link_text("闻").click()
     
    xpath
      
    
    

    绝对路径
    driver.get("http://www.baidu.com")
    driver.find_element_by_xpath("/html/body/div/div/div/div[3]/a[3]").click()
    元素属性定位
    river.get("http://www.baidu.com")
    driver.find_element_by_xpath("//a[@name="tj_trmap"]").click()或
    driver.find_element_by_xpath("//*[@name="tj_trmap"]").click()
     
     
    层级与属性结合

     元素本身没有可以唯一标识的属性值,如果上级元素有可以唯一标识属性的值,就可以拿来用

    driver.get("http://www.baidu.com")
    driver.find_element_by_xpath("//form[@id="form"]/span/input").send_keys("selenium")
    driver.find_element_by_xpath("//span[@class="bg s_btn_wr"]/input[@id="su"]").click()
     
    使用逻辑运算符
    driver.get("http://www.baidu.com")
    driver.find_element_by_xpath("//input[@id="kw" and @name="wd"]").send_keys("selenium")
    driver.find_element_by_xpath("//input[@id="su" and @type="submit"]").click()
    右键-复制xpath
     
    css 
       

     .class

    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")
    driver.find_element_by_css_selector(".s_btn").click()

     如果存在多个相同class的元素,可以通过nth-child(index)来寻找目标元素,如:

    driver.find_element_by_css_selector(".mnav:nth-child(3)").click()
    #id  
    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector("#kw").send_keys("selenium")
    driver.find_element_by_css_selector("#su").click()
    通过标签名定位  标签名重复的概率非常大,通过这种方式很难找到想要的元素
    通过属性定位  
    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector("[id="kw"][name="wd"]").send_keys("selenium")
    driver.find_element_by_css_selector("[id="su"]").click()
    组合定位  
    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector("form[class="fm"]>span>input[id="kw"][name="wd"]").send_keys("selenium")
    driver.find_element_by_css_selector("form#form>span>input#su").click()
  • 相关阅读:
    jquery toggle(listenerOdd, listenerEven)
    struts quick start
    hdu 1518 Square (dfs)
    hdu 2544 最短路 (最短路径)
    hdu 1754 I Hate It (线段树)
    hdu 1856 More is better (并查集)
    hdu 1358 Period (KMP)
    hdu 2616 Kill the monster (DFS)
    hdu 2579 Dating with girls(2) (bfs)
    zoj 2110 Tempter of the Bone (dfs)
  • 原文地址:https://www.cnblogs.com/csj2018/p/9242638.html
Copyright © 2011-2022 走看看