selenium元素定位之XPath定位与CSS定位

1 Xpath常用的定位策略

driver.find_element_by_XPath(“XPath”)

  1. 路径
    1)绝对路径:
    语法:以单斜杠开头,逐级编写
    如:/html/body/form/div/fieldset/p[2]/input (标签相同时,用【n】表示第n个标签)
    2)相对路径:
    语法:以双斜杠开头,双斜杠后面跟标签名称,也可以用*代替,即不指定标签(此方式不建议使用)
    如://input

  2. 路径结合属性
    语法:在XPath中,所有的属性必现使用@符号修饰
    如://标签名[@属性=“属性值”]

  3. 路径结合逻辑(多个属性)
    语法://标签名[@属性1=“属性值” and @属性2=‘属性值’]

  4. 路径结合层级
    语法://父级标签名[@父级属性=“属性值”]/子级标签名

XPath - 延申:

  • //*[test()=“xxxx”] 文本内容为xxx的元素
  • //*[contains(@attribute,“xxx”)] 属性中含有xxx的元素
  • //*[starts-with(@attribute,“xxx”)] 属性以xxx开头的元素
  • //*[end-with(@attribute,“xxx”)] 属性以xxx结尾的元素

2 CSS定位常用的定位策略

driver.find_element_by_css_selector(“css_selector”)

  1. id选择器
    语法:#id
  2. class选择器
    语法:.class
  3. 元素选择器
    语法:元素标签名
  4. 属性选择器
    语法:[属性=”属性值“]
  5. 层级选择器
    语法:
    1)标签1>标签2 (>:2必须是1的直接下级)
    2)标签1 标签2 (空格:2只要是1的下级即可)

CSS延申:

  • 标签名A[属性^ = “xxx”] 标签A中属性值以xxx开头的元素
  • 标签名A[属性$ = “xxx”] 标签A中属性值以xxx结尾的元素
  • 标签名A[属性* = “xxx”] 标签A中属性值包含xxx的元素

猜你喜欢

转载自blog.csdn.net/vale_/article/details/105855245