元素不可交互错误:Selenium Python 表单自动填充

问题描述 投票:0回答:1

我正在使用 Selenium 自动填写在线表格。我在使用复选框时遇到麻烦。这是页面元素列表:

page elements

检查复选框时,会识别该元素:

这是我的脚本

checkbox = browser.find_element(By.CLASS_NAME, "iCheck-helper")
checkbox.click()

所以我找不到元素的 ID,我使用类名代替。我收到以下错误:

selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互

所以,我认为这个复选框有多层,我可能没有使用正确的元素???不确定

如有任何帮助,我们将不胜感激。预先感谢

我尝试了多种方法。尝试了附近的所有元素,但它们不起作用。

我也尝试过等待,时间不是问题,页面已完全加载,我可以看到复选框。

python forms selenium-webdriver element autofill
1个回答
0
投票

假设您的选择器是正确的(根据您提供的内容似乎是这种情况),可能有多种原因导致“元素不可交互”错误:

时序或同步问题

  • 该元素尚未出现在 DOM 上或尚未可交互。

元素不可见或被遮挡

  • 另一个元素可能会遮挡您尝试与之交互的元素,从而阻止交互。

iFrame 问题

  • 您尝试与之交互的元素嵌套在 iframe 中。

对于前两个问题,上面建议的thread可能会有所帮助。但是,如果问题与 iframe 相关,那么您必须先切换到脚本中的 iframe,然后才能与脚本中的任何元素进行交互。

根据您的描述,似乎有可能使用了 iframe。另外,类名(例如 iCheck-helper)让我暗示您可能正在处理 iframe,但这可能只是巧合。

如果 iframe 是使用 iframe 标签实现的,您可以通过在开发工具的“元素”选项卡下搜索“iframe”来运行快速检查。

© www.soinside.com 2019 - 2024. All rights reserved.