如何使用硒在此 iframe 中定位元素?

How to locate an element inside this iframe with selenium?

我正在尝试访问此 iframe 中的元素:

我先尝试使用switch_to.frame(0),但仍然无法定位框架内的元素。

错误截图:

你应该切换到框架:

driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

由于元素在 中,因此您必须:

  • 诱导 WebDriverWait 所需的 帧可用并切换到它

  • 您可以使用以下任一项:

    • 使用CSS_SELECTOR:

      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[title='To Do Assignments in Connect'][src='https://connect.mheducation.com/paamweb/index.html#/access/home']")))
      
    • 使用 XPATH:

      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@title='To Do Assignments in Connect' and @src='https://connect.mheducation.com/paamweb/index.html#/access/home']")))
      
  • 注意:您必须添加以下导入:

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

参考资料

您可以在以下位置找到一些相关的详细讨论: