当前位置: 首页 > 知识库问答 >
问题:

如何修复此问题:元素不可交互:Selenium Python

酆茂才
2023-03-14

我的脚本代码中有以下一行,其中我从Selenium IDE获得的XPath工作正常:

driver.find_element_by_xpath("(//a[contains(@href, '')])[20]").click()

自动化测试在此处停止,并显示以下错误:

Traceback (most recent call last):
File "Script.py", line 65, in <module>
    driver.find_element_by_xpath("//a[contains(@href, '')])[20]").click()
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable
(Session info: chrome=74.0.3729.131)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 6.1.7601 SP1 x86_64)

如何解决此问题?

感谢任何帮助。

共有3个答案

葛俊
2023-03-14

有时您可能需要复制完整的 XPATH。这是我找到的一个工作。

潘坚白
2023-03-14

我想分享我的经验,以防其他人也有同样的情况。< br >我收到了相同的错误消息“消息:元素不可交互”。< br >经过大约两个小时的故障排除,发现XPATH识别出了另一个隐藏元素。因此,我修改了XPATH以确保只捕获目标元素。

章威
2023-03-14

鉴于您只想抓取数据,我建议您使用此解决方案:

element = driver.find_element_by_xpath("(//a[contains(@href, '')])[20]")
driver.execute_script("arguments[0].click();", element)

它通过Javascript点击元素,而不是selenium使用的“自然”点击(试图模拟用户体验)。

我在这里回答了一个类似的问题,链接到另一篇文章。

 类似资料:
  • 我正在使用Selenium记录我在网页上的操作,但是,当我运行测试用例时,出现了一个点击操作抛出错误:元素当前不可见,因此可能无法与之交互。但是,我确信按钮是可见的,下面是它的html: 此外,这是我的Selenium IDE测试脚本: 有人知道为什么吗?提前感谢!

  • 我需要选择列表中的最后一项。下面的代码显示了该元素当前不可见的消息。如何解决这个问题? HTML: 列表的屏幕截图。该列表有一个搜索字段,用户可以在其中输入前缀以缩小搜索范围。

  • 我正在尝试单击 函数? 或者,我试图以为目标: 这只是给出了一个错误,即它不在当前视图中,很可能是因为< code>a在< code>div下面 错误: Web驱动程序中发生了类型为“OpenQA.硒.元素不可见异常”的未处理的异常.dll附加信息:元素当前不可见,因此可能无法与之交互 谢谢你的帮助。我认为我的第二个选择是最好的选择。有没有办法抵消一个< code>Click()?谢了。

  • 我是新的Selenium C#NUnit。我跟着一行代码跑了 var wait=new WebDriverWait(驱动程序,TimeSpan.FromSeconds(30));等待直至(d)= 我得到了以下消息:消息:OpenQA. Selenium。元素不可交互(会话信息:chrome=89.0.4389.114)堆栈跟踪:远程WebDriver。Unpack AndThrowOnError(

  • 我有两个输入文本 通过打印元素标题,我确认了第一个和第二个输入元素都是可访问的。到目前为止,我尝试了setAttribute,executescript……但没有一个有效(或者我做了一些错误)(也许,它可能对谷歌chrome自动更新有作用?这是我现在唯一能想到的)

  • 我试图得到某个产品的评论,但它返回一个错误。 我的代码: 它返回:硒。常见的例外。ElementNotInteractitableException:消息:元素不可交互 你能告诉我该怎么办吗?