xpath概念

  • xpath = xml path
  • xml和HTML一样是标签语言,通过标签的嵌套来表达信心,自然而然形成了父节点、子节点、后代节点、祖先节点、同胞节点等关系。而xpath就是用来在这些节点中找到所需要的。

    xpath的表达式

    | 表达式 | 描述 | | —- | —- | | nodename | 选取此节点的所有子节点 | | / | 从根节点选取 | | // | 从匹配选择的当前节点选择文档中的节点,不考虑他们的位置 | | “ | 选取当前节点 | | “” | 选取当前节点的父节点 |

进阶表达式

路径表达式 结果
/bookstore/div[1] 选取bookstore子元素的第一个div元素
/bookstore/div[last()] 选取bookstore子元素的最后一个div元素
/bookstore/div[last()-1] 选取bookstore子元素的倒数第二个div元素
//div/title[text()=’hww’] 选取所有div下的title元素,仅仅选择文本为hww的替title元素
//title[@lang=”eng”] 选取lang属性值为eng的所有title元素

使用相对路径来定位元素

  • 使用相对路径再结合属性的定位方式来编写XPath定位表达式,可以解决90%的页面元素定位难题。

    根据class定位

    driver.find_element(By.XPATH,**"//*[@id='kw']"**).send_keys(**"自动化测试"**)

    根据class定位

  • 表示class为dd的第一个li标签

//*[@class='dd']/li[1]

根据text定位

//*[text()="dd"]

根据title定位

//*title='下一页'