xpath定位等用法

基础用法

//标签名[@属性="属性值"]
可以使用xpath方法做如下定位

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 使用xpath通过id属性定位
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("python")
# 使用xpath通过name属性定位
driver.find_element_by_xpath('//*[@name="wd"]').send_keys("python")
# 使用xpath通过class属性定位
driver.find_element_by_xpath('//*[@class="s_ipt"]').send_keys("python")

逻辑运算

  1. xpath还有一个比较强的功能,是可以多个属性逻辑运算的,可以支持与(and)、或(or)、非(not)
  2. 一般用的比较多的是and运算,同时满足多个条件
from selenium import webdriver

driver = webdriver.Firfox()
driver.get("http://www.baidu.com")
driver.find_element_by_xpath('//*[@id="kw" and @autocomplete="off"]')

模糊匹配

  1. xpath还有一个非常强大的功能,模糊匹配
from selenium import webdriver

driver = webdriver.Firfox()
driver.get("http://www.baidu.com")
# xpath模糊匹配功能
driver.find_element_by_xpath('//*[contains(text(), "hao123")]').click()
# xpath也可以模糊匹配某个属性
driver.find_element_by_xpaht('//*[contains(@id, "kw")]').click()
# 模糊匹配以什么开头
driver.find_element_by_xpath('//*[starts-with(@id, "s_kw_")]').click()
# 模糊匹配以什么结尾
driver.find_element_by_xpath('//*[ends-with(@id, "kw_wrap")]').click()
# 支持正则表达式
driver.find_element_by_xpath('//*[matchs(text(), "hao13")]').click()
posted @ 2021-05-14 09:26  zhenyuantg  阅读(120)  评论(0编辑  收藏  举报