gpt4 book ai didi

python - 元素不可点击 - 即使它在那里

转载 作者:行者123 更新时间:2023-12-02 09:30:17 25 4
gpt4 key购买 nike

希望能帮到你。我对 Python 和 Selenium 比较陌生。我正在尝试编写一个简单的脚本来自动在各个网站上搜索新闻。主要关注的是足球,从几个地方为我获取最新的曼联新闻,并为我保存链接标题和 URL 列表。然后我可以自己浏览链接并选择我想要查看的任何内容。

在尝试独立报纸(https://www.independent.co.uk/)时,我似乎遇到了使用以下方法时元素不可交互的问题:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome('chromedriver')
driver.get('https://www.independent.co.uk')

time.sleep(3)

#accept the cookies/privacy bit
OK = driver.find_element_by_id('qcCmpButtons')
OK.click()

#wait a few seconds, just in case
time.sleep(5)


search_toggle = driver.find_element_by_class_name('icon-search.dropdown-toggle')
search_toggle.click()

这会抛出selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互错误

我也尝试过使用 XPATH

search_toggle = driver.find_element_by_xpath('//*[@id="quick-search-toggle"]')

我也尝试过ID。

我在这里阅读了大量内容,然后还尝试使用 WebDriverWait 和execute_script 方法:

element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, '//*[@id="quick-search-toggle"]')))
driver.execute_script("arguments[0].click();", element)

这似乎没有错误,但搜索框从未出现,即没有发生适当的点击。

您能提供的任何帮助都会很棒。谢谢,皮特

最佳答案

您的定位器是//*[@id="quick-search-toggle"],页面上有2个。第一个是不可见的,第二个是可见的。默认情况下,selenium 指的是第一个元素,遗憾的是您所指的元素是第二个元素,因此您需要另一个唯一的定位器。试试这个:

search_toggle = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//div[@class="row secondary"]//a[@id="quick-search-toggle"]')))
search_toggle.click()

关于python - 元素不可点击 - 即使它在那里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60520428/

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