xPath如何使用通用名称访问输入文本文件

时间:2018-11-26 14:48:59

标签: xpath

是否可以通过以下方式访问代码中的输入:

(...)
<div class="dialogProp">
    <div class="gwt-Label">Name</div> 
    <div class="floatLeft">
        <div>
            <input type="text" class="textBox">
        </div> 
    <div class="notVisible"></div>
</div>
<div class="dialogProp">
    <div class="gwt-Label">Surname</div> 
    <div class="floatLeft">
        <div>
            <input type="text" class="textBox">
        </div> 
    <div class="notVisible"></div>
</div>
(...)

如您所见,我得到了两个输入,它们之间唯一的区别是div内的标签内有不同的文本。这种模式可以在网站的各处找到,我无法更改。我也无法添加ID。 您知道是否有可能在div的内部将这种不同的文本添加到xPath中吗?

假设我要访问第一个输入。

我当然可以使用一些长于屁股的xPath,但我想将其与gwt-Label内的文本作为变量重复使用。

2 个答案:

答案 0 :(得分:2)

在下面使用以下标签文字查找input

//div[@class="gwt-Label" and .="Name"]/following-sibling::div//input

在Python中,您可以通过变量传递标签:

label = "Name"
xpath = '//div[@class="gwt-Label" and .="%s"]/following-sibling::div//input' % label

答案 1 :(得分:1)

要访问有关标签文本输入,可以使用以下解决方案:

labelText = "Name" 
#or labelText = "Surname"
xpath = "//div[@class='gwt-Label' and contains(.,'" +labelText+ "')]//following::div[1]//input"