Ключевое слово Get Matching Xpath Count не возвращает все совпадающие Xpath

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

Прямо сейчас я использую приведенный ниже код, чтобы найти все совпадающие Xpaths и сохранить их в переменной.

*** Keywords ***
Count How Many RadioButtons On Page
    ${Count}    Get Matching Xpath Count    //tr
    ${CountList}    Create List
    : FOR    ${INDEX}    IN RANGE    1    ${Count}
    \    Append To List    ${CountList}    xpath=//tr[${INDEX}]
    log    ${CountList}
    Set Global Variable    ${CountList}

Это хранит только 11 записей. Когда на странице на самом деле содержится 20. По какой-то причине на ней отсутствуют остальные 9, и я не могу понять, почему.

В итоге переменная CountList выглядит так:

u'xpath=//tr[1]', u'xpath=//tr[2]', u'xpath=//tr[3]', u'xpath=//tr[4]', u'xpath=//tr[5]', u'xpath=//tr[6]', u'xpath=//tr[7]', u'xpath=//tr[8]', u'xpath=//tr[9]', u'xpath=//tr[10]', u'xpath=//tr[11]'

Этот список должен идти до //tr[20]

Я также могу подтвердить, что использование (например) //tr[12] или более поздних версий будет работать правильно. Просто Get Matching Xpath Count не тянет все 20 почему-то.

Кто-нибудь может пролить свет на это?

РЕДАКТИРОВАТЬ:

Ниже приведена часть HTML страницы, которую я пытаюсь подсчитать:

<tbody id="oKGQf0-rows">
    <tr id="oKGQ_1" class="z-listitem z-listitem-selected">
        <td id="oKGQ0q" class="z-listcell">
            <div id="oKGQ0q-cave" class="z-listcell-content"><span id="oKGQ_1-cm" class="z-listitem-checkable z-listitem-radio"><i class="z-listitem-icon z-icon-radio"></i></span>&nbsp;P-DAC-15-790</div>
        </td>
        <td id="oKGQ1q" class="z-listcell">
            <div id="oKGQ1q-cave" class="z-listcell-content">DATA</div>
        </td>
        <td id="oKGQ2q" class="z-listcell">
            <div id="oKGQ2q-cave" class="z-listcell-content">..DATA</div>
        </td>
        <td id="oKGQ3q" class="z-listcell" title="AMD Contractors Work Permit">
            <div id="oKGQ3q-cave" class="z-listcell-content">15</div>
        </td>
        <td id="oKGQ4q" class="z-listcell">
            <div id="oKGQ4q-cave" class="z-listcell-content">i9</div>
        </td>
        <td id="oKGQ5q" class="z-listcell">
            <div id="oKGQ5q-cave" class="z-listcell-content">DATA</div>
        </td>
        <td id="oKGQ6q" class="z-listcell">
            <div id="oKGQ6q-cave" class="z-listcell-content">&nbsp;</div>
        </td>
        <td id="oKGQ7q" class="z-listcell">
            <div id="oKGQ7q-cave" class="z-listcell-content">26-06-2015 14:50</div>
        </td>
        <td id="oKGQ8q" class="z-listcell">
            <div id="oKGQ8q-cave" class="z-listcell-content">&nbsp;</div>
        </td>
        <td id="oKGQ9q" class="z-listcell">
            <div id="oKGQ9q-cave" class="z-listcell-content">&nbsp;</div>
        </td>
    </tr>
    <tr id="oKGQ11" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQ31" class="z-listitem">
    </tr>
    <tr id="oKGQ51" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQ91" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQb1" class="z-listitem">
    </tr>
    <tr id="oKGQd1" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQf1" class="z-listitem">
    </tr>
    <tr id="oKGQh1" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQj1" class="z-listitem">
    </tr>
    <tr id="oKGQl1" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQn1" class="z-listitem">
    </tr>
    <tr id="oKGQp1" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQr1" class="z-listitem">
    </tr>
    <tr id="oKGQt1" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQv1" class="z-listitem">
    </tr>
    <tr id="oKGQx1" class="z-listitem z-listbox-odd">
    </tr>
    <tr id="oKGQz1" class="z-listitem">
    </tr>
    <tr id="oKGQ02" class="z-listitem z-listbox-odd">
    </tr>
</tbody>

РЕДАКТИРОВАТЬ2:

Я обновил Get Matching Xpath Count до //div[4]/table/tbody/tr, чтобы быть немного более конкретным, и он по-прежнему считает только 11, а не 20.

РЕДАКТИРОВАТЬ3:

Если я выполняю тот же тест на 2-й странице, он работает совершенно нормально (возвращает 20 и перебирает 20 строк). Но нет никакой разницы между страницей 1 и 2...


person Goralight    schedule 28.06.2017    source источник
comment
Вы подтвердили, что ${Count} 20 лет?   -  person ILostMySpoon    schedule 28.06.2017
comment
Можете ли вы привести пример своего кода, из которого вы хотите подсчитать xpath?   -  person ILostMySpoon    schedule 28.06.2017
comment
@ILostMySpoon ${Count} содержит 12, что еще больше сбивает с толку! Get Matching Xpath Count правильно считает?   -  person Goralight    schedule 28.06.2017
comment
Да, это правильно. Трудно определить, в чем может быть проблема, без примера фактического xpath, который вы пытаетесь подсчитать.   -  person ILostMySpoon    schedule 28.06.2017
comment
Я пытаюсь подсчитать все //tr на текущей странице. Должно быть 20, а не 11. Или вы имеете в виду HTML?   -  person Goralight    schedule 28.06.2017
comment
Да, настоящий HTML.   -  person ILostMySpoon    schedule 28.06.2017
comment
Добавлен HTML — он был слишком большим для всех тегов td внутри тегов tr, поэтому я оставил один в качестве примера, остальные следуют той же тенденции.   -  person Goralight    schedule 28.06.2017


Ответы (1)


Оказывается, RF действительно не понимал, что происходит на странице. Так что я сделал, когда я пришел на страницу (через панель навигации), чтобы затем обновить текущую страницу. Затем он увидел все 20 записей и продолжил цикл for, как и ожидалось.

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

Если кто-то еще столкнется с подобной проблемой, оставьте комментарий ниже, и я постараюсь вам помочь :)

person Goralight    schedule 29.06.2017
comment
На HTML-странице таблица обычно загружается построчно. Вы проверили, что вся таблица загружена на веб-страницу. Сделайте снимок экрана страницы и подождите 5 секунд, а затем снова сделайте снимок экрана. В следующий раз, когда вы загрузите страницу, она возьмет несколько элементов из кеша, поэтому загружается быстрее. - person Gahlawat; 29.06.2017
comment
Я могу подтвердить, что вся таблица была загружена. Когда я сделал снимок экрана, вся страница была загружена правильно. - person Goralight; 29.06.2017