Selenium 返回错误数量的元素
Selenium returning the incorrect number of elements
我正在尝试使用 selinium 来计算 table 中的行数。我目前的实现是
table = self.driver.find_element_by_xpath('//*[@id="id"]')
print(len(table.find_elements_by_tag_name('tr')))
以下table
<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')))
returns 28。无论我添加还是删除 table 行,总是会返回 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')))
returns 4.
我正在尝试使用 selinium 来计算 table 中的行数。我目前的实现是
table = self.driver.find_element_by_xpath('//*[@id="id"]')
print(len(table.find_elements_by_tag_name('tr')))
以下table
<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')))
returns 28。无论我添加还是删除 table 行,总是会返回 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')))
returns 4.