因此,我有一个简单的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。