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

    selenium定位方法

    Selenium提供了8种定位方式。

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

      

    #写法如下:
    find_element_by_id()     #id定位
    
    find_element_by_name()      #name定位
    
    find_element_by_class_name()   #class_name定位
    
    find_element_by_tag_name()   #tag_name定位
    
    find_element_by_link_text()      #link_text定位
    
    find_element_by_partial_link_text()    #partial_link_text定位
    
    find_element_by_xpath()     #xpath定位
    
    find_element_by_css_selector()    #css_selector定位   

    通过xpath定位,xpath定位常用写法:

    find_element_by_xpath("//*[@id='kw']")
    find_element_by_xpath("//*[@name='wd']")
    find_element_by_xpath("//input[@class='s_ipt']")
    find_element_by_xpath("/html/body/form/span/input")
    find_element_by_xpath("//span[@class='soutu-btn']/input")
    find_element_by_xpath("//form[@id='form']/span/input")
    find_element_by_xpath("//input[@id='kw' and @name='wd']")

    通过css定位,css定位常用写法:

    find_element_by_css_selector("#kw")
    find_element_by_css_selector("[name=wd]")
    find_element_by_css_selector(".s_ipt")
    find_element_by_css_selector("html > body > form > span > input")
    find_element_by_css_selector("span.soutu-btn> input#kw")
    find_element_by_css_selector("form#form > span > input")

    组合定位

    我们可以把上面的定位组合起来使用,加强定位准确性

    driver.find_element_by_css_selector("form.fm > span > input.s_ipt")

    属性定位

    在css中可以使用元素的属性定位,只要属性可以唯一标识这个元素

    driver.find_element_by_css_selector("[id='kw']")

    用By定位元素

    find_ element(方法,通过By来声明定位,并且传入对应定位方法(其实跟上面没什么区别...)

    driver.find_element_by_css_selector("[id='kw']")
    driver.find_element_by_css_selector("[name='kw']")

     

    WebDriver还提供了8种用于定位一组元素的方法

    find_elements_by_id()
    find_elements_by_name()
    find_elements_by_class_name()
    find_elements_by_tag_name()
    find_elements_by_link_text()
    find_elements_by_partial_link_text()
    find_elements_by_xpath()
    find_elements_by_css_selector()
    #没错,一毛一样,就是element上加了s

    定位一组元素:

    from selenium import webdriver
    from time import sleep
    
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")
    
    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id("su").click()
    sleep(1)
    
    # 定位一组元素
    texts = driver.find_elements_by_xpath('//div/h3/a')
    
    # 循环遍历出每一条搜索结果的标题
    for t in texts:
        print(t.text)
    
    driver.quit()

     结果就不放了,自己试试吧   -.-

  • 相关阅读:
    ElasticSearch原理
    redis master配置了密码进行主从同步
    redis sentinel 高可用(HA)方案部署,及python应用示例
    Linux Redis集群搭建与集群客户端实现
    字符串倒序
    单链表反转
    【python】面试常考数据结构算法
    面试中的排序算法总结
    Memcached 真的过时了吗?
    Activity生命周期
  • 原文地址:https://www.cnblogs.com/zuoyou1223/p/11867365.html
Copyright © 2011-2022 走看看