首页 > 解决方案 > Selenium 和 Python 的动态元素

问题描述

我正在尝试用 Selenium 填写一个小表格,但它具有动态元素,它不允许我以任何方式捕获。在此链接中,您可以看到表格:https ://www.asefasalud.es/

形式

我已经尝试了几乎所有的搜索元素来捕获对象,但它们都不起作用。

driver.find_element_by_xpath("//*[contains(@id, 'inputDiafnac')]").get(0).send_keys("2")
driver.find_element_by_xpath("//*[contains(@id, 'inputDiafnac')]").send_keys("2") 
driver.find_element_by_xpath("//input[@id='inputDiafnac1']").send_keys("2")
driver.find_element_by_css_selector("#inputDiafnac1").send_keys("2")
driver.find_element_by_id("inputDiafnac1").send_keys("2")

最终结果

不知道有没有其他方法可以捕捉到这些元素,谢谢。

标签: pythonseleniumselenium-webdriver

解决方案


我发现了一些我认为可能有用的东西。

driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, "[name='calcular-seguro-medico']"))
driver.find_element_by_id("inputDiafnac1").send_keys("2")

完成此框架内的元素后,您需要使用切换回顶层框架

driver.switch_to.default_content()

推荐阅读