selenium中使用xpath定位
在 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'))