我正在尝试使用table
从div
元素中选择一个值selenium
,
当我检查该元素时,我可以看到该元素包含,table
但是在查看源代码时(试图通过selenium进行访问时却无法找到)。
检查期间:
以下是我尝试过的代码,
totals = driver.find_element_by_id("totals")#gets the totals div element. Only one is there
labels=totals.find_elements_by_class_name("hasLabel")#should get the table rows, but it was empty
print(len(labels))#returned 0
但是,它是空的(正如我在源代码中所看到的)。我需要将这些值导出到文件中作为自动化的一部分
我还有其他方法可以提取这些到期值吗?
您的观察似乎接近完美。根据您共享的“在检查期间”快照中的HTML ,高亮显示文本为Taxes Due的元素。
在查看通过Selenium提取的源代码快照时,可能甚至在子元素完全呈现在DOM Tree中之前,也已拔出Page Source:
因此,其中的子元素<div id='totals'></div>
不会与Page Source一起出现。
文本格式的相关HTML将有助于构造规范的答案。但是,要获取<tr>
为引发WebDriverWait所需的元素总数,则visibility_of_all_elements_located()
可以使用以下两种定位策略之一:
使用XPATH
:
print(len(WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//table/tbody//tr[@class='hasLabel'][./td[@class='label']]")))))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句