如何 select selenium 中的 g-menu-item (Python)

How to select a g-menu-item in selenium (Python)

我正在尝试在自定义时间范围内查找与不同网络搜索相关的新闻文章。如果有人知道比硒更好的方法,请告诉我。我尝试使用 API,但它们都很贵。 我的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path=r".\chromedriver.exe")
driver.get("https://www.google.com")
cookie_button = driver.find_element_by_id('L2AGLb')
cookie_button.click()
search_bar = driver.find_element_by_name("q")
search_bar.clear()
search_bar.send_keys("Taylor Swift")
search_bar.send_keys(Keys.RETURN)
news_button = driver.find_element_by_css_selector('[data-hveid="CAEQAw"]')
news_button.click()
tools_button = driver.find_element_by_id('hdtb-tls')
tools_button.click()
recent_button = driver.find_element_by_class_name('KTBKoe')
recent_button.click()
custom_range_button = dashboards_button = driver.find_elements_by_tag_name('g-menu-item')[6]
custom_range_button.click()
driver.close()

我正在尝试单击此按钮:

我已尝试 select、跨度、所有父 div,现在是 g-menu-item 本身,在每种情况下我都收到错误:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

我知道当元素不可见或无法单击时可能会发生这种情况,但我也尝试在每个操作之间添加 sleep(2) ,我可以在浏览器中看到 selenium 打开它到达点我发送的图片然后找不到自定义范围按钮??

简而言之: 你知道我怎样才能点击这个自定义范围按钮吗? 或者你知道如何从特定日期抓取大量新闻文章(没有昂贵的 API's)

那些 g-menu 是特殊类型的标签,

您可以使用以下方式找到它们:

//*[name()='g-menu-item']

此 xpath 将指向所有节点。

此外,我看到您对第 6 项感兴趣。

(//*[name()='g-menu-item'])[6] 

在代码中:

custom_range_button = driver.find_element_by_xpath("(//*[name()='g-menu-item'])[6]")
custom_range_button.click()