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

    1.driver.find_element_by_id("id_vaule")

    2.driver.find_element_by_name("name_vaule")  :通过name定位元素:因为name属性可能存在重名的情况,如果重名的话会优先定位该name值第一次出现的元素,可能就不是我们的目标元素

    3.driver.find_element_by_class_name("class_name") :通过class_name定位元素:不建议使用,原因html源码中,类样式会同时在多个元素上面使用

    4.driver.find_element_by_tag_name("tag_name_vaule")

    5.driver.find_element_by_link_text("text_vaule") :需传全部文本内容

      driver.find_element_by_partial_link_text("text_vaule"):可以传入部分文本内容

    通过link定位:通过链接定位,仅限于a标签

    6.xpath定位方法

    6.1 绝对路径定位
    driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[3]/a[3]').click()
    6.2 相对路径定位  建议使用

    driver.find_element_by_xpath("//form/span/input").send_keys("金田一少年事件簿")

    6.3 使用元素属性来定位

    # and 和 or完成通过多个属性值定位
    # driver.find_element_by_xpath('//*/div[3]/a[3]').click() #或者//*[@id="s-top-left"]/a[3]
    # driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").send_keys('哈哈')
    # driver.find_element_by_xpath("//input[@id='kw' or @class='s_ipt']").send_keys('哈哈')
    # 可以使用 * 来代替我们不知道的内容
    driver.find_element_by_xpath("//*[@id='kw']").send_keys("金田一少年事件簿")

    6.4 通过部分属性值定位

    # starts-with(@属性名, '匹配开头') 方法
    driver.find_element_by_xpath("//*[starts-with(@name, 'tj_trm')]").click()
    # substring(@属性名, 开始位置, 截取长度)
    driver.find_element_by_xpath("//*[substring(@name, 7)='ideo']").click() #9:指的是从第9个字符开始到最后(包括第9位)
    # contains()
    driver.find_element_by_xpath("//*[contains(@name, 'tie')]").click()
    6.5 使用文本定位       //*[text()='文本值']
    driver.find_element_by_xpath("//a[text()='新闻']").click()
    driver.find_element_by_xpath("//a[contains(text(),'hao')]").click() #根据文本内容模糊查找

    7.css定位方法

    #7.1:绝对路径
    driver.find_element_by_xpath('html body div[1] div[1] div[3] a[3]').click()
    #7.2 相对路径定位
    # driver.find_element_by_css_selector('#kw').send_keys('哈哈')
    # driver.find_element_by_css_selector('span input.s_ipt').send_keys('哈哈')

    #7.3 使用元素属性定位
    # driver.find_element_by_css_selector("input[class='s_ipt']").send_keys('哈哈')
    # driver.find_element_by_css_selector("input[class='s_ipt'][maxlength='255']").send_keys('哈哈')

    #7.4 使用部分属性值来匹配
    # driver.find_element_by_css_selector("input[class^='s_i']").send_keys('哈哈') # 属性值以什么开头
    # driver.find_element_by_css_selector("input[class$='_ipt']").send_keys('哈哈') #属性值以什么结尾
    # driver.find_element_by_css_selector("input[class*='_ipt']").send_keys('哈哈') #属性值包含

    #7.5 出查询子元素
    # driver.find_element_by_css_selector("div#s-top-left a:first-child").click() 子元素第一个
    # print(driver.find_element_by_css_selector("div#s-top-left a:last-child").click()子元素第二个
    # driver.find_element_by_css_selector("div#s-top-left a:nth-child(3)").click() 第n个子元素

    #7.6 查询兄弟元素
    driver.find_element(By.CSS_SELECTOR,'div#s-top-left a+a').click()
    elements = driver.find_elements(By.CSS_SELECTOR,'div#s-top-left a~a')
    for ele in elements:
    print(ele.text)
     

     

      

     

      

  • 相关阅读:
    [haoi2015]T1
    [haoi2014]走出金字塔
    [haoi2014]穿越封锁线
    [haoi2014]遥感监测
    [haoi2012]高速公路
    [haoi2012]容易题
    [haoi2008]排名系统
    【bzoj1014】[JSOI2008]火星人prefix
    0916解题报告
    生成树计数问题
  • 原文地址:https://www.cnblogs.com/joy-field/p/12876120.html
Copyright © 2011-2022 走看看