如何使用xpath匹配div元素中的文本?

时间:2019-05-17 19:46:59

标签: selenium xpath

我正在尝试使用xpath在硒中定位xml元素。它嵌套在内部。

我手头有3498546和3498755。我需要将这些数字与

  • 元素中列出的数字进行匹配,并找到特定的。

    我尝试了以下各种组合: xpath = // * [@ id =“ tabs”] / ul / li / [包含(div,'3498546')]

    但它从未成功。

    下面是示例html代码,我在

    中列出了大约100

  • <div id="tabs">
        <ul>
            <li class="unknown">
            <span style="">DELIVERED</span>
            <a title="A1" onclick="submitForm('e1:eForm',1);return false;" 
                class="eLink" href="#">
            <div class="c1">"Year 2008
                                                              "
                <br>"3498546
                                                               "
                <br>
                </div>
                <strong>Date: </strong>05/14/2019
           </a>
        </li>
        <li class="unknown">
            <span style="">DELIVERED</span>
            <a title="A2" onclick="submitForm('e1:eForm',1);return false;" 
               class="eLink" href="#">
                <div class="c1">"Year 2008  
                                                             "
                    <br>"3498755
                                                          "
                    <br>
                </div>
                    <strong>Date: </strong>05/14/2019</a>
        </li>
      </ul>
    </div>
    

    我希望能够找到并单击文本为3498546或3498755的元素。

  • 3 个答案:

    答案 0 :(得分:0)

    这是基于3498546的xpath。

    //div[@class='c1'][contains(normalize-space(.),'3498546')]
    

    您可以将3498546的值更改为所需的数字并使用该数字。如果要获取所有具有数字的元素并单击每个元素,则可以使用下面的xpath。

    //div[@id='tabs']//div[@class='c1']
    

    答案 1 :(得分:0)

    //div[contains(text(),'3498755')]
    

    所有您需要的是查找div元素,其文本中包含您要查找的数字。

    答案 2 :(得分:0)

    要对文本为click()3498546的任一元素进行3498755,可以使用以下解决方案:

    • 3498546

      • Java partialLinkText

        driver.findElement(By.partialLinkText("3498546")).click();
        
    • 3498755

      • Java partialLinkText

        driver.findElement(By.partialLinkText("3498755]")).click();