如何唯一标识多个标记和多个值的xpath

时间:2018-05-02 10:20:19

标签: python selenium selenium-webdriver xpath webdriver

我有以下html:

<div class=‘content active’>
    <div>
        <div class=‘var’>
            <div class=‘field var-field’>
                <label>Interface Name</label>
                <div class=‘ui input’>
                    <input type=‘input’ placeholder=‘.*’ value> ==$0
                </div>
            </div>
        </div>
    </div>
    <div>
        <div class=‘var’>
            <div class=‘field var-field’>
                <label>Neighbor Id</label>
                <div class=‘ui input’>
                    <input type=‘input’ placeholder=‘.*’ value> ==$0
                </div>
            </div>
        </div>
    </div>
</div>

我需要使用标签:Interface Name将文本发送到文本框。 有没有办法独特地编写xpath以将文本发送到文本框。 请注意,唯一标识唯一的方法是使用标签。标签中的其他字段对于两者都是相同的。 我尝试使用AND运算符。没运气。 请帮帮我。

3 个答案:

答案 0 :(得分:2)

试试这个:

//label[text()='Interface Name']/following-sibling::div/child::input 

答案 1 :(得分:0)

要根据<input>标记向<label>元素发送文字,您可以按如下方式创建功能:

def test_me(myText):
        driver.find_element_by_xpath("//label[.='" + myText + "']//following::div[1]/input").send_keys("hello")

现在,您可以在脚本中的任何位置调用此函数,如下所示:

test_me("Interface Name")
# or
test_me("Neighbor Id")

答案 2 :(得分:-1)

您可以使用此XPATH: - //*[text()='Interface Name']/following-sibling::div/input"