我正在尝试使用硒精计算表中的行数。我目前的意思是
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。
我认为我只是很傻,实际上解决方案就在我眼前,但我只是看不到。
答案 0 :(得分:0)
由于我正在处理的网页使用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。