硒返回的元素数量不正确

格拉兹比

我正在尝试使用硒精计算表中的行数。我目前的意思是

table = self.driver.find_element_by_xpath('//*[@id="id"]')

print(len(table.find_elements_by_tag_name('tr')))

在下表上

<table class="grid" id="id">
    <tbody>
        <tr class="header-row"> </tr>
        <tr>
            <td class="tdclass"> </td>
            <td> </td>
            <td> </td>
        </tr>
        <tr class="alt">
            <td class="tdclass"> </td>
            <td> </td>
            <td> </td>
        </tr>
        <tr>
            <td class="tdclass"> </td> 
            <td> </td>
            <td> </td>
            <td> </td>
        </tr>
    </tbody>
</table>

直接访问tbody [如果有帮助]是

/html/body/form/div[4]/div[2]/div[3]/div/div/div/div[2]/div/table/tbody

我运行以下代码的输出如下

>>> print(len(table.find_elements_by_tag_name('tr')))
28

我的预期输出是

>>> print(len(table.find_elements_by_tag_name('tr')))
4

现在,我发现奇怪的是,print(len(table.find_elements_by_tag_name('tr')))每次返回28。无论我添加还是删除表行,总是会返回28。

我以为我只是很傻,实际上解决方案就在我眼前,但我只是看不到。

格拉兹比

由于我要处理的网页使用AJAX,因此我需要调用time.sleep(x)。

见下文

    >>> self.driver.find_element_by_name(x).send_keys(xkeys)
    >>> self.driver.find_element_by_name(y).click()
    >>> time.sleep(5)
    >>> table = self.driver.find_element_by_xpath('//*[@id="id"]')
    >>> print(len(table.find_elements_by_tag_name('tr')))

返回4。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章