Выберите похожие результаты поиска с помощью Xpath - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь выбрать правильный элемент при использовании функции поиска через интерфейс. Проблема в том, что в зависимости от поискового запроса код заполняется по-разному.

Вот пример с двумя поисковыми запросами:

  1. "Test"
  2. "Test2"

Поиск «Тест» создаст следующий HTML-код:

<td id="__item40_cell0" style="text-align:left" class="sapMListTblCell">
    <div id="__result32" <div class="surjcontent">
        <em class="surjhighlight">Test</em> 
        2&nbsp;&nbsp;
        <span class="info">‎Milieudienst (12345))‎</span> 
        &nbsp;&nbsp;
    </div>
    </div>
</td>

<td id="__item41_cell0" style="text-align:left" class="sapMListTblCell">
    <div id="__result33" <div class="surjcontent">
        <em class="surjhighlight">Test</em> 
        &nbsp;&nbsp;
        <span class="info">‎Milieudienst (12345))‎</span> 
        &nbsp;&nbsp;
    </div>
    </div>
</td>

Поиск «Тест2» :

<td id="__item40_cell0" style="text-align:left" class="sapMListTblCell">
    <div id="__result32" <div class="surjcontent">
        <em class="surjhighlight">Test2</em> 
        &nbsp;&nbsp;
        <span class="info">‎Milieudienst (12345))‎</span> 
        &nbsp;&nbsp;
    </div>
    </div>
</td>

Когда есть только 1результат поиска (пример "Test2" выше), проблем нет. Тогда Xpath может быть: //em[contains(text(), 'Test2')]. Однако, как вы можете видеть в первом фрагменте, когда есть почти идентичные элементы, это становится сложнее (для меня это так) из-за того, что класс <em></em> заполнен, а оставшийся текст помещен в следующую строку: &nbsp;&nbsp; против 2&nbsp;&nbsp;

Как выбрать правильный элемент в случае с примером "Тест", игнорируя тег <span></span>, и в то же время обдумывая несколько похожих результатов.

Пытался покончить с этим, следовать за родным братом и т. Д. Но не могу заставить его работать так, как я к нему подхожу.

...