在硒Python中无法从div元素中找到表格元素

普拉文

我正在尝试使用tablediv元素中选择一个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

但是,它是空的(正如我在源代码中所看到的)。我需要将这些值导出到文件中作为自动化的一部分

我还有其他方法可以提取这些到期值吗?

DebanjanB

您的观察似乎接近完美。根据您共享的“在检查期间”快照中的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章