利用Xpath进行动态定位元素

xpath中提供了三个非常好的方法来为我们定位部分属性值:

1、contains(a, b) 如果a中含有字符串b,则返回true,否则返回false
2、starts-with(a, b) 如果a是以字符串b开头,返回true,否则返回false
3、ends-with(a, b) 如果a是以字符串b结尾,返回true,否则返回false
在这里插入图片描述
如代码:
在这里插入图片描述
需要定位到上述元素,如下:
1)driver.find_element_by_xpath("//div[contains(@id,‘aa’)]")
选取id值包含“aa”的div节点
2)driver.find_element_by_xpath("//div[starts-with(@id,‘aa’)]")
选取id值以“aa”开头的div节点

### 使用 XPath 定位相邻兄弟元素 当需要定位 HTML 文档中的相邻兄弟元素时,可以利用 XPath 提供的强大路径表达式来实现这一目标。对于直接位于同一父级标签下的前后紧邻的两个同辈元素之间的关系定义为相邻兄弟节点。 #### 方法一:通过 `following-sibling` 轴选取紧跟在指定元素之后的第一个兄弟元素 如果要找到特定元素后面紧接着的一个兄弟元素,则可采用此方法: ```xml //element/following-sibling::*[1] ``` 这里的 `*` 表示匹配任意类型的元素,而 `[1]` 则限定了只选中第一个符合条件的结果[^1]。 #### 方法二:使用 `preceding-sibling` 轴反向选择前序兄弟元素 相反地,若是要寻找某元素之前最近的那个兄弟成员,应该这样写: ```xml //element/preceding-sibling::*[1] ``` 同样地,这会返回给定上下文中该元素之前的最接近它的同胞节点[^3]。 这两种方式都可以帮助测试人员或开发者精准地获取到所需的目标对象,在自动化测试框架如 Selenium WebDriver 中尤为有用。除了上述两种基本形式外,还可以进一步组合其他条件来进行更复杂的筛选操作。 为了更好地理解这些概念并将其应用于实际场景,请考虑下面的例子: 假设有一个简单的网页结构如下所示: ```html <ul> <li class="first">First item</li> <li>Second item</li> <li>Last item</li> </ul> ``` 现在想要获得 "Second item" 这个列表项对应的 XPath 表达式,可以通过它前面那个带有特殊类名 (`first`) 的 `<li>` 来精确定位: ```xml //li[@class='first']/following-sibling::li[1] ``` 这个例子展示了如何基于已知特性(即存在唯一标识符)有效地锁定下一个兄弟元素的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值