web自动化2-常用xpath位置关系

XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:

1、child 选取当前节点的所有子元素

2、parent 选取当前节点的父节点

3、descendant 选取当前节点的所有后代元素(子、孙等)

4、ancestor 选取当前节点的所有先辈(父、祖父等)

5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身

6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身

7、preceding-sibling 选取当前节点之前的所有同级节点

8、following-sibling 选取当前节点之后的所有同级节点

9、preceding 选取文档中当前节点的开始标签之前的所有节点

10、following 选取文档中当前节点的结束标签之后的所有节点

11、self 选取当前节点

12、attribute 选取当前节点的所有属性

13、namespace 选取当前节点的所有命名空间节点

preceding-sibling,选取当前节点之前的所有同级节点,同一个parent下该节点之前的节点,即“哥哥”节点(是同父的哥哥节点)。

/AAA/XXX/preceding-sibling:😗/AAA/XXX节点的所有之前同级节, * 可以是div, span等

几个比较复杂的示例:
父级前面的div,其中i属性包含image //span[text()=“评”]/parent::button/preceding-sibling::div/div/button/span/i[contains(@class,“image”)]
div属性中style属性不包含display的 //div[not(contains(@style,“display”))]/ul/li[text()=“撤回”]
//div[@role=“dialog” and @aria-labelledby=“确定要发送这张照片吗”]/div/button/div/span[text()=“确认”]
当前div父级元素的下一个兄弟元素 //div[text()=“示忙原因选择”]/parent::div/following-sibling::div[1]/div/label[4]/i

# 截图发送
# test_photo = driver.save_screenshot("test.png")
# crtl+V
driver.find_element(By.XPATH, '//*[@id="chatInputHeight"]/textarea').send_keys(Keys.CONTROL, "V");
div没有style属性
//div[8]/div/div[not(@style)]/button/i
关联条件查询
//label[@for="rowId" and text()="信息单号:"]/following-sibling::div/div/input
可见的div,最上面那个div
//div[not(contains(@style,"display"))]
class属性不等于
//div[@class!="el-table__fixed"]
内容包含
//span[contains(text(),"督办详情")]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值