首页 > 解决方案 > 无法使用 preceeding-sibling 识别元素

问题描述

该站点 - https://www.jqueryscript.net/demo/Drop-Down-Combo-Tree/显示“多选”选项供用户选择不同的选项。

我已经确定了选择 'Choice 6 2 3' 的 xpath,即 (//span[text()='choice 6 2 3'])[1]

此外,我还确定了该元素的父元素,即 (//span[text()='choice 6 2 3'])[1]//parent::li[@class='ComboTreeItemChlid']

从这里,如何使用前兄弟概念选择“选择 6 2 2”?

我尝试使用 (//span[text()='choice 6 2 3'])[1]//parent::li[@class='ComboTreeItemChlid']//preceeding-sibling::li 但什么也没显示。

标签: seleniumselenium-webdriver

解决方案


对于您的元素,只有一个父 li 而不是哪个类,实际上ComboTreeItemChlid我在页面中找不到该类的任何 li。无论如何,当您使用父节点时,无需提及任何属性,并且在 xpath 下方preceding-sibling将选择选项Choice 6 2 2

//span[text()='choice 6 2 3']//parent::li//preceding-sibling::li[1]

选择选项Choice 6 2 1

//span[text()='choice 6 2 3']//parent::li//preceding-sibling::li[1]

推荐阅读