selenium之八种元素定位方法

selenium之八种元素定位方法

webDriver提供了8种用于定位元素的方法

  • id定位(唯一)find_element_by_id(“kw”)
  • name定位 find_element_by_name(“wd”)
  • class name定位 find_element_by_class_name(“wd”)
  • tag name 定位 find_element_by_tag_name(标签名称)
  • link定位 find_element_by_link_text(a元素的文本内容)
  • partial link 定位 find_element_by_partial_link_text(a元素的部分文本内容)
  • xpath定位 find_element_by_xpath(xpath表达式)
  • css定位 find_element_by_css_selector(css表达式)
    代码如下:
"""
根据元素的特征,来确认元素的条件 ,然后根据条件去找到唯一的那个元素。

8大元素:

1、只根据元素的一个属性来找元素:6大
id
name
class_name - 只支持一个class值
tag_name

只针对a元素:
link_text
partial_link_text


2、多个属性组合来找元素或者通过其它的关系来找元素:2大

xpath - 语法  - F12下elements当中,按Ctrl +F 弹出表达式确认框
    绝对定位 - 以/开头, 父/子
    /html/body/div[2]/div[3]/div/div/div[2]/div[3]/i[1]   继承顺序、兄弟位置顺序
    //*[@id="number-attend"]/div[2]/div[3]/i[1]
    //div[@id="number-attend"]//i[@class="ing"]

    相对定位 - 靠自己的特征来定位  不在乎在第几代,不在乎是哪个小弟
    以//开头 - 有一个参照物
    1、//标签名[@属性=值]
    //i[@class="ing"]

  2、层级定位://一级元素//二级元素//......
       //div[@id="number-attend"]//i[@class="ing"]

    # 说明页面 - 哪个元素
    # 元素定位表达式
    

"""

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://www.baidu.com")

#TODO id定位
element = driver.find_element_by_id("kw")   # WebElement对象 - 1个对象对应1个元素
# driver.find_elements_by_id("kw")
element.send_keys("selenium webdriver")

#TODO  name定位
driver.find_element_by_name("wd")
driver.find_elements_by_name("wd")

#TODO  class定位 - 只能是class属性当中的一个值
driver.find_element_by_class_name("s_ipt")   # 1个元素 - 匹配到的第1个元素
# driver.find_elements_by_class_name("s_ipt")   # 所有匹配多个元素 - 列表

# TODO tag定位
driver.find_element_by_tag_name("input")
driver.find_elements_by_tag_name("input")

# TODO link_text定位
driver.find_element_by_link_text("地图")
driver.find_elements_by_link_text("地图")
#
# TODO partial_link_text定位
driver.find_element_by_partial_link_text("hao")
driver.find_elements_by_partial_link_text("hao")

#TODO xpath定位(相对定位和绝对定位)
driver.find_element_by_xpath('//div[@id="se-setting-7"]//a[text()="保存设置"]')
driver.find_element_by_xpath('//*[@id="1"]/div[2]')

# TODO css定位
driver.find_element_by_css_selector('a[href="#id3"]')

猜你喜欢

转载自blog.csdn.net/guiyin1150/article/details/108452879