selenium已知一个元素定位同级别的另一个元素

1.需求与实际情况

看下图来举例
在这里插入图片描述

(1)需求

想点击test22(即序号-第9行)这一行中右边的“复制”这一按钮

(2)实际情况

只能通过id或者class定位到文件名这一列的元素,而操作这一列的元素是不能单独通过class、id或者其他什么样式定位到(因为整个列中:重命名、复制、删除这些个按钮都是一样的css样式)

2.解决方法

通过xpath来定位同级的元素。

即:driver.find_element(By.XPATH,“//a[@class=‘test22这一元素对应的class’]/..//a[@class=‘test22这一行的“复制”对应的class’]”)

解释就是:“//a[@class=‘test22这一元素对应的class’]”–>这一步是定位到了test22所在的这一行;“/+两个点”–>回到test22的上一级元素;因为找到了test22的上一级此时再向下定位相同行的同级元素就是这一步–>“//a[@class=‘test22这一行的“复制”对应的class’]”

3.实例

实际的css样式结构是下图

在这里插入图片描述

实际代码是下图

在这里插入图片描述

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Selenium中,可以使用多种定位方式来查找同一个元素,以增加定位的稳定性和灵活性。下面是几种常见的定位方式: 1. 通过ID定位: ```java WebElement element = driver.findElement(By.id("elementId")); ``` 2. 通过名称定位: ```java WebElement element = driver.findElement(By.name("elementName")); ``` 3. 通过类名定位: ```java WebElement element = driver.findElement(By.className("className")); ``` 4. 通过标签名定位: ```java WebElement element = driver.findElement(By.tagName("tagName")); ``` 5. 通过链接文本定位(适用于`<a>`标签): ```java WebElement element = driver.findElement(By.linkText("linkText")); ``` 6. 通过部分链接文本定位(适用于`<a>`标签): ```java WebElement element = driver.findElement(By.partialLinkText("partialLinkText")); ``` 7. 通过CSS选择器定位: ```java WebElement element = driver.findElement(By.cssSelector("cssSelector")); ``` 8. 通过XPath定位: ```java WebElement element = driver.findElement(By.xpath("xpathExpression")); ``` 当某个元素的唯一标识(如ID)发生变化或者无法准确地定位时,可以尝试使用其他定位方式,如CSS选择器、XPath等,以增加元素的查找准确性和稳定性。此外,可以使用`findElements`方法查找多个匹配的元素,并根据需要进行操作。 注意,在使用多个定位方式时,应根据实际情况选择合适的定位方式,并确保所选定位方式能够准确地定位到目标元素,以避免出现不必要的错误和问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值