gpt4 book ai didi

python - 为什么尝试使用 selenium 单击会出现 "ElementNotInteractableException"?

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:26 24 4
gpt4 key购买 nike

我正在尝试从网站主页单击网页“https://2018.navalny.com/hq/arkhangelsk/”。但是,我收到此错误

selenium.common.exceptions.ElementNotInteractableException: Message: 

“消息:”之后没有任何内容

我的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox()
browser.get('https://2018.navalny.com/')
time.sleep(5)
linkElem = browser.find_element_by_xpath("//a[contains(@href,'arkhangelsk')]")
type(linkElem)
linkElem.click()

我认为 xpath 对我来说是必要的,因为最终我的目标不是点击单个链接,而是点击该网页上的 80 个链接。我已经设法使用此打印所有相关链接:

driver.find_elements_by_xpath("//a[contains(@href,'hq')]")

但是,对于初学者来说,我试图让它至少单击一个链接。

感谢您的帮助,

最佳答案

解决此类问题的最佳方法是使用您首选浏览器的开发人员工具查看页面源代码。例如,当我转到此页面并查看 Firebug 的 HTML 选项卡时,查找 //a[contains(@href,'arkhangelsk')]我看到这个:

enter image description here

因此,该链接位于 div 内,当前不可见(实际上从 divid="hqList" 的整个子部分都被隐藏)。 Selenium 不允许您单击不可见元素,尽管它允许您检查它们。因此,获取元素有效,单击它则无效。

您用它做什么取决于您的期望。在这种特殊情况下,您似乎需要单击 <label class="branches-map__toggle-label" for="branchesToggle">Список</label>使该链接可见。所以添加这个:

browser.find_element_by_link_text("Список").click();

之后您可以单击列表中的任何链接。

关于python - 为什么尝试使用 selenium 单击会出现 "ElementNotInteractableException"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46590672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com