关于selenium:XPath:获取上一个项目,按类别过滤

XPath: Get previous item, filtering by class

我有这个HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    <img style="display:none" class="help-size-img-colorbox" data-subgroup="1_Man" src="Man.gif">
        Jogging
        Tutorial

   
        <table data-size="41" class="SizeElement" style="display: none;">
            <tbody>
                <tr>
                    <td class="td-label-size">
                        <span class="label-size" data-size="41">41</span>
                    </td>
                    <td class="td-label-textbox">
                        <input name="ctl00$CthBody$sizelist$TxtSize_41" type="text" maxlength="4" id="CthBody_sizelist_TxtSize_41" class="txt-Size" data-price="19.50" data-size="41" data-available="0" data-subgroup="1" style="width:30px;">
                        </td>
                    </tr>
                </tbody>
            </table>
       
       
            <table data-size="42" class="SizeElement" style="display: none;">
                <tbody>
                    <tr>
                        <td class="td-label-size">
                            <span class="label-size" data-size="42">42</span>
                        </td>
                        <td class="td-label-textbox">
                            <input name="ctl00$CthBody$sizelist$TxtSize_S" type="text" maxlength="4" id="CthBody_sizelist_TxtSize_S" class="txt-Size" data-price="19.50" data-size="42" data-available="0" data-subgroup="1" style="width:30px;">
                            </td>
                        </tr>
                    </tbody>
                </table>

将Selenium与C#一起使用,并从名称为

的输入元素开始

ctl00$CthBody$sizelist$TxtSize_41

我希望XPath表达式获取文本" Jogging"。谢谢。


如果上下文节点是input[@name='ctl00$CthBody$sizelist$TxtSize_41'],则以下XPath将选择包含" Jogging "的div:

1
(preceding::div[@class='subgroup-description'])[1]

或者您可以使用:

1
ancestor::div[1]/preceding-sibling::div[1]/div[@class='subgroup-description']