Python Selenium 找不到元素(结果为空)

Python Selenium cannot find an element (result empty)

这是我的 python 代码

elements=driver.find_elements_by_id("folder_c0fb056b-f83a-495e-9db1-dd1b19942eaa")
print(elements)

结果是 [ ]。同样的方法也适用于网站的其他部分,但是当我进入网站内部的 table 时,它无法正常工作。我可以在这些命令行之前找到并单击一些链接。请看我附上的图片。当您查看 HTML2 时,白色框是最后一张附加图像(网页视图)中显示的 div "folder_c0fb056b-f83a-495e-9db1-dd1b19942eaa"。剩下的蓝框是我感兴趣的区域,好像是

<a id="rptReportFolders_ctl04_rptReports_ctl00_hlReportNameDescription" href="/da2/Reports/ReportResults.aspx?ReportID={b3583c5f-874b-4eca-9548-bf88f99ff7e6}">
    <b>AE-CR Log - Open Items / All Projects</b> 
</a>

如果您确定元素的 id 不是通用的,您可以尝试使用这个:

elements = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, "//div[@id='folder_c0fb056b-f83a-495e-9db1-dd1b19942eaa']/div/a")))
for element in elements:
    print(element.text)
    if element.text == 'your text':
        element.click()

此代码段的主要思想是使用 WebDriverWait 等待至少 10 秒,直到所有元素都出现在页面上,然后才打印它们的列表。我还提出了另一个选择器,它将定位所有 a 链接。

注意:你必须添加一些导入:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By