在 Selenium 中的嵌套 iframe 中选择 HTML 元素
与 Selenium 中的嵌套 iframe 中的元素进行交互需要在选择目标之前切换到适当的 iframe元素。默认的 Selenium 焦点保留在顶部窗口,如果没有显式切换到所需的 iframe,则无法与其中的元素进行交互。
框架切换方法
要切换到特定的 iframe,Selenium 提供了三个选项:
示例:
# Switch to an iframe by its name driver.switch_to.frame("iframe_name") # Select an element within the iframe element = driver.find_element_by_css_selector(".element_selector") # Switch back to the main frame driver.switch_to.default_content()
更好的方法:
为了改进对 iframe 转换的处理,考虑使用 Selenium 的 WebDriverWait 类frame_to_be_available_and_switch_to_it() 预期条件。此条件等待目标 iframe 变得可用并自动切换到它。
示例:
# Wait for the iframe with the specified ID to become available and switch to it WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "iframe_id"))) # Select an element within the iframe element = driver.find_element_by_css_selector(".element_selector") # Switch back to the main frame driver.switch_to.default_content()
其他注意事项
参考:
了解更多详细信息以及Selenium中iframe处理的讨论,参考:
以上是如何使用 Selenium 选择嵌套 iframe 内的 HTML 元素?的详细内容。更多信息请关注PHP中文网其他相关文章!