Javascript Python Selenium:WebDriverWait,尽管已加载,但未找到元素

Javascript Python Selenium:WebDriverWait,尽管已加载,但未找到元素,javascript,jquery,python,selenium,wait,Javascript,Jquery,Python,Selenium,Wait,我正在尝试加载一个包含动态HTML的URL。selenium webdriver可以很好地加载URL,但它似乎在HTML完全呈现之前搜索元素。我试过WebDriverWait,但似乎不起作用 有趣的是,在selenium找不到元素后,我可以手动使用Chrome开发者工具成功地找到元素 有什么想法吗 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait chromepath =

我正在尝试加载一个包含动态HTML的URL。selenium webdriver可以很好地加载URL,但它似乎在HTML完全呈现之前搜索元素。我试过WebDriverWait,但似乎不起作用

有趣的是,在selenium找不到元素后,我可以手动使用Chrome开发者工具成功地找到元素

有什么想法吗

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

chromepath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"
url        = "https://www.msci.com/end-of-day-data-search"
delay      = 15 #seconds

br = webdriver.Chrome(chromepath)
br.get(url)

try:
    br.find_element_by_class_name("accept-btn").click()
    print("accepted terms and conditions")
finally:
    try:
        labelxpath   = "//*[@id='form-content']/table[1]/tbody/tr[2]/td/span"
        labelElement = WebDriverWait(br, delay).until(lambda br: br.find_element_by_xpath(labelxpath))
        print(labelElement)
    except:
        print("could not find label")
        br.close()
脚本结果: “接受的条款和条件”
“找不到标签”

实际上,这不仅仅是等待页面加载

您要查找的元素位于iframe中。在搜索元素之前,需要切换到其上下文:

driver.switch_to.frame(0)  # 0 here is an index - using 0 since there is only one iframe

谢谢你把一切都修好了