为什么selenium拾取的元素比HTML检查元素显示的要多



因此,我有一个简单的python脚本,它应该使用selenium来计算表中的行数。

问题是,当我使用len((打印时,它显示9,但当我检查元素时,只有4 tr.

这是怎么发生的?

以下是len:的片段

try:
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//table/tbody/tr')))
td = driver.find_elements(By.XPATH, '//table/tbody/tr')
print(len(td))
except Exception as e:
print (e)

这是我试图抓取的网站的html结构示例。

附带信息:下面的行数是由AJAX定义的。

<tbody>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
</tbody>

我也很确定,上面的片段是xpath指出的,因为它是chrome开发控制台的find函数高亮显示的片段。

在计算找到的td之前,您应该等待所有加载的表
visibility_of_element_located((By.XPATH, '//table/tbody/tr')仅在等待表中的第一行。

我想明白了。

显然,显示的日历也使用了Tables,因为我用//启动了xpath,所以它计算了两个表上的TR。

最新更新