как сопоставить текст в элементе div с помощью xpath?

Я пытаюсь найти элемент XML в селен с помощью xpath. Он вложен внутрь.

У меня есть номера 3498546 и 3498755 в руке. Мне нужно сопоставить эти цифры с числами, перечисленными в

  • элементы и найдите конкретные.

    Я пытался использовать различные комбинации с ниже: xpath = // * [@ id = "tabs"] / ul / li / [contains (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 ответа


    Вот xpath на основе 3498546 .

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

    Вы можете изменить значение 3498546 на требуемое число и использовать то же самое. Если вы хотите получить все элементы с номерами и щелкнуть по каждому из них, вы можете использовать приведенный ниже xpath.

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

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

    Чтобы click() по любому из элементов с текстом 3498546 или 3498755 вы можете использовать следующие решения:

    • 3498546 :

      • Java & partalLinkText :

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

      • Java & partalLinkText :

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

    Есть идеи?

    10000