我正在使用 Selenium 自动填写在线表格。我在使用复选框时遇到麻烦。这是页面元素列表:
检查复选框时,会识别该元素:
这是我的脚本
checkbox = browser.find_element(By.CLASS_NAME, "iCheck-helper")
checkbox.click()
所以我找不到元素的 ID,我使用类名代替。我收到以下错误:
selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互
所以,我认为这个复选框有多层,我可能没有使用正确的元素???不确定
如有任何帮助,我们将不胜感激。预先感谢
我尝试了多种方法。尝试了附近的所有元素,但它们不起作用。
我也尝试过等待,时间不是问题,页面已完全加载,我可以看到复选框。
假设您的选择器是正确的(根据您提供的内容似乎是这种情况),可能有多种原因导致“元素不可交互”错误:
时序或同步问题
元素不可见或被遮挡
iFrame 问题
对于前两个问题,上面建议的thread可能会有所帮助。但是,如果问题与 iframe 相关,那么您必须先切换到脚本中的 iframe,然后才能与脚本中的任何元素进行交互。
根据您的描述,似乎有可能使用了 iframe。另外,类名(例如 iCheck-helper)让我暗示您可能正在处理 iframe,但这可能只是巧合。
如果 iframe 是使用 iframe 标签实现的,您可以通过在开发工具的“元素”选项卡下搜索“iframe”来运行快速检查。