Python 2.7 Get Matching Xpath Count关键字不会返回所有匹配的Xpath

Python 2.7 Get Matching Xpath Count关键字不会返回所有匹配的Xpath,python-2.7,selenium,xpath,robotframework,selenium2library,Python 2.7,Selenium,Xpath,Robotframework,Selenium2library,我正在尝试存储我正在处理的页面中所有单选按钮的列表。单选按钮数量将根据我使用的页码而变化 现在我使用下面的代码查找所有匹配的XPath并将其存储在一个变量中 *** Keywords *** Count How Many RadioButtons On Page ${Count} Get Matching Xpath Count //tr ${CountList} Create List : FOR ${INDEX} IN RANGE

我正在尝试存储我正在处理的页面中所有单选按钮的列表。单选按钮数量将根据我使用的页码而变化

现在我使用下面的代码查找所有匹配的XPath并将其存储在一个变量中

*** 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>

P-DAC-15-790
资料
…数据
15
i9
资料
26-06-2015 14:50
编辑2:

我将
Get Matching Xpath Count
更新为
//div[4]/table/tbody/tr
,使之更具体一些,它仍然只计算11,而不是20

编辑3:


如果我在第2页上执行相同的测试,它会完全正常工作(返回20,循环20行),但第1页和第2页之间没有区别…

结果是,RF并不真正了解页面中发生了什么。因此,我所做的是当我到达页面时(通过导航栏),然后刷新当前页面。然后它看到了所有20个条目,并按照预期继续通过for循环

我不知道这是否是RF for Selenium2库中的一个bug,但我不应该在尝试完成逻辑任务时基本上重新初始化网页


如果其他人遇到类似的问题-下面的评论,我会尽力帮助你:)

你验证过
${Count}
是20吗?你能提供一个代码示例,从中你可以计算
xpath
的值吗?@ILostMySpoon
${Count}
包含12个,这现在更让人困惑了!
Get Matching Xpath Count
的计数是否正确?是的,这是正确的。如果没有您试图计数的实际
xpath
示例,很难确定问题是什么。我正在尝试计数当前页面上的所有
//tr
。这应该是20,而不是11。或者说HTML页面表上的HTML?通常是逐行加载的。您是否已验证整个表格已加载到网页上。捕获页面的屏幕截图并等待5秒钟,然后再次捕获屏幕截图。下一次加载页面时,它会从缓存中取出一些元素,因此加载速度会更快。我可以确认整个表已加载完毕。当我捕捉到一个截图时,整个页面被正确加载。