XPath和CSS选择器的进阶

记录一下关于selenium下XPath和CSS选择器的进阶

XPath轴(axes)和CSS选择器的伪类(pseudo-classes)与伪元素(pseudo-elements)是高级定位技术,可以在复杂的HTML结构中帮助你更精确地定位元素。

1. XPath轴(Axes)
XPath轴提供了一种方式来选择与当前节点有特定关系的节点。以下是一些常用的XPath轴:

  • child:::选择当前节点的直接子节点。
  • descendant:::选择当前节点的所有后代节点。
  • ancestor:::选择当前节点的所有祖先节点。
  • attribute:::选择当前节点的属性。
  • following-sibling:::选择当前节点后的所有同级节点。
  • preceding-sibling:::选择当前节点前的所有同级节点。
    例如,如果你想定位一个
    元素,它紧随一个具有特定ID的

    元素之后,可以使用以下XPath:
    //p[@id='specific-id']/following-sibling::div

2. CSS选择器的伪类(Pseudo-classes)
CSS伪类用于选择元素的特定状态。以下是一些常用的伪类:

  • :link - 选择未被访问的链接。
  • :visited - 选择已被访问的链接。
  • :hover - 选择鼠标悬停在其上的元素。
  • :active - 选择当前被激活的元素。
  • :focus - 选择获得焦点的元素。
  • :first-child - 选择其父元素的首个子元素。
  • :last-child - 选择其父元素的最后一个子元素。
  • :nth-child(n) - 选择其父元素的第n个子元素。
    例如,如果你想选择表格中奇数行,可以使用以下CSS选择器:
tr:nth-child(odd) {
background-color: #f2f2f2;
}

3. CSS选择器的伪元素(Pseudo-elements)

CSS伪元素用于选择元素的特定部分。以下是一些常用的伪元素:

  • ::before - 在元素内容前插入内容。
  • ::after - 在元素内容后插入内容。
  • ::first-letter - 选择元素的首字母。
  • ::first-line - 选择元素的首行。
    例如,如果你想突出显示段落的第一个字母,可以使用以下CSS选择器:
p::first-letter {
font-size: 130%;
font-weight: bold;
}

4. 使用XPath轴和CSS伪类的实践示例

假设你有一个HTML结构如下:

<div class="container">
<p id="paragraph-1">Text 1</p>
<div class="content">Content 1</div>
<p id="paragraph-2">Text 2</p>
<div class="content">Content 2</div></div>

如果你想定位紧随id="paragraph-1"的

元素,可以使用以下XPath和CSS选择器:
XPath:
//p[@id='paragraph-1']/following-sibling::div[contains(@class, 'content')]

CSS选择器:
div.content:nth-child(2)
在实际使用中,你可以根据具体的HTML结构和需要定位的元素状态,灵活运用XPath轴和CSS伪类来编写精确的定位器。

posted @   哑巴老六  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示