首页 > 其他分享 >XPath和CSS选择器的进阶

XPath和CSS选择器的进阶

时间:2024-04-16 12:45:15浏览次数:20  
标签:XPath 元素 节点 选择 选择器 CSS

记录一下关于selenium下xpath的进阶技术
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伪类来编写精确的定位器。

标签:XPath,元素,节点,选择,选择器,CSS
From: https://www.cnblogs.com/zjw-lxj/p/18137845

相关文章

  • Python Flask+Pandas读取excel显示到html网页: CSS控制表格样式
    前言全局说明CSS控制表格样式一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563修改内容后,要重启flask服务,修改才能生效四、CSS控制表格样式4.1.2文件名:index.pyfrom......
  • 在CSS中创建一个鼠标悬停时弹出菜单
    要在CSS中创建一个鼠标悬停时弹出菜单,你可以使用HTML和CSS来实现。以下是一个简单的例子:HTML:<divclass="dropdown"><buttonclass="dropbtn">点击我</button><divclass="dropdown-content"><ahref="#">链接1</a>......
  • Python Flask+Pandas读取excel显示到html网页:CSS控制表格样式
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、CSS控制表格样式4.1.2文件名:index.pyfromflaskimportFlaskapp=Flask(__name__)@app.route("/excel......
  • css 盒子模型
    1.分类标准盒子模型content-box怪异盒子模型border-box2.示例代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1......
  • css 选择器 和浏览器渲染
    1、!important;2、Id选择器3、类选择器属性选择器伪类选择器4、元素选择器伪元素选择器(::before::after)(a,b,c)算法aid选择器个数这b 类选择器属性选择器伪类选择器和c 元素选择器伪元素选择器和CSS浏览器渲染:1、样式声明:所有自定义的样式和浏览器默认的样式,......
  • 1.Html、CSS
    HTMLdiv块状元素(独占一行)Span行H1-h6标题i斜体Strong加粗a超链接Img图片Video视频Textarea表单域(多行)Button按钮input输入框placeholder框内灰色提示字CSS上右下左margin外边距padding内边距word-wrap:break-word自动换行border边框solid实线、radius边框弧......
  • HTML&CSS基础(HTML5和CSS3新增内容)
    HTML5一、新增的语义化标签标签名语义单/双标签header整个页面,或者分区域的头部双footer整个页面,或者部分区域的底部双nav导航双article文章、帖子、杂志、新闻、博客、评论双section页面中的某段文字,或者文章中某段文字双aside侧边栏双......
  • HTML&CSS基础(CSS2)
    1.CSS是什么层叠样式表样式:文字大小、背景颜色、元素宽高层叠:一层层”叠“上去2.样式位置2.1行内样式写在标签的style属性中,又称内联样式<divstyle="color:red;font-size:17px"></div>2.2内部样式<head><style>div{color:red;......
  • HTML&CSS基础(HTML3)
    1.前言学习路线:HTML4(排版标签)CSS2(盒子模型)HTML4(HTML5优势)CSS3(弹性盒子)marquee标签滚动条效果(废弃,不再使用)标签=元素 loop属性:循环次数;bgcolor属性:背景色当标签中出现多个重复的属性,只显示一个属性2.IDE(VScode)2.1调整字体设置->控制字体大小(建议22......
  • matplotlib中渐变颜色条转CSS样式(hex格式)——同mapbox中cog的颜色条拉伸显示
    matplotlib中渐变颜色条转CSS样式(hex格式)——同mapbox中cog的颜色条拉伸显示应用场景:1.适用于mapbox中显示cog影像时,colormap_name拉伸颜色条转换2.适用于Python可视化matplotlib内置颜色条转换以colormap_name=Blues为例转换代码如下:使用python,需要安装matplotlib和numpy......