selenium中使用xpath定位

发布时间 2023-06-28 00:16:12作者: 天才九少

在 XML 文档中,XPath 是一种定位元素的语言。因为 HTML 可以看作 XML 的一种实 现,所以 WebDriver 提供了这种在 Web 应用中定位元素的方法

绝对路径选择

elements = driver.find_elements(By.XPATH, "/html/body/div")

相对路径选择

择 所有的 div 元素里面的 所有的 p 元素 ,不管div 在什么位置,也不管p元素在div下面的什么位置

elements = driver.find_elements(By.XPATH, "//div//p")

根据属性选择

根据属性来选择元素 是通过 这种格式来的 [@属性名='属性值']

 

 //*[@id='west']  # 根据id属性选择
//p[@class="capital huge-city"]  # 根据class属性选择
//*[@multiple]  # 选择具有multiple属性的所有页面元素
//*[contains(@style,'color')]  # 选择 style属性值 包含 color 字符串的页面元素
//*[starts-with(@style,'color')]  # 选择style属性值以 color 字符串 开头的页面元素
//*[@id='kw' and @class='s_ipt']  # and表示必须满足两个条件来定位元素

 

要在某个元素内部使用xpath选择元素需要在xpath表达式最前面加个点

# 先寻找id是china的元素
china = wd.find_element(By.ID, 'china')

# 再选择该元素内部的p元素
elements = china.find_elements(By.XPATH, './/p')

# 打印结果
for element in elements:
    print('----------------')
    print(element.get_attribute('outerHTML'))