Уточнение результатов поиска Selenium Google по срокам и дате

Я пытаюсь уточнить свои результаты после использования Selenium и Chrome с python для автоматизации поиска в Google и получения отсортированных ссылок. Я могу успешно получить начальные результаты поиска с помощью скрипта и автоматически нажать кнопку "Инструменты".

Суть в том, что я не могу выяснить необходимые HTML-теги для доступа и выбрать / щелкнуть раскрывающийся список временных рамок, по умолчанию установлен "В любое время", а затем выбрать / щелкнуть раскрывающийся список "Релевантность" для сортировки по дате. Я попытался выбрать, но я использую неправильные теги для этого метода. Я использовал inspect element и Katalon Recorder, чтобы выяснить это, но я получаю синтаксические ошибки, такие как "element not found". Любая помощь приветствуется.

driver.get('https://www.google.com/search')
search_field = driver.find_element_by_name("q")

search_field.send_keys("cheese")
search_field.submit()
#  Clicks the Tools button, activates sort dropdowns
driver.find_element_by_id("hdtb-tls").click()

# Need to sort results by last 24, week, month, etc.
driver.find_element_by_class_name('hdtb-mn-hd')
driver.find_element_by_link_text('Past month').click()

# Need to sort results date
driver.find_element_by_xpath('.//*[normalize-space(text()) and normalize- 
space(.)="To"])[1]/following::div[5]')
driver.find_element_by_link_text('Sorted by date').click()

1 ответ

Решение

Ты скучаешь по .click() за driver.find_element_by_class_name('hdtb-mn-hd')

driver = webdriver.Chrome()

driver.get('https://www.google.com/search')
search_field = driver.find_element_by_name("q")

search_field.send_keys("cheese")
search_field.submit()
#  Clicks the Tools button, activates sort dropdowns
driver.find_element_by_id("hdtb-tls").click()

# Need to sort results by last 24, week, month, etc.
driver.find_element_by_class_name('hdtb-mn-hd').click()
driver.find_element_by_link_text('Past month').click()

Вот полный сценарий, который работал все время:

from selenium import webdriver 
import time

driver = webdriver.Chrome()

driver.get('https://www.google.com/search')
search_field = driver.find_element_by_name("q")

search_field.send_keys("cheese")
search_field.submit()
#  Clicks the Tools button, activates sort dropdowns
time.sleep(1)
driver.find_element_by_id("hdtb-tls").click()

# Need to sort results by last 24, week, month, etc.
time.sleep(1)
driver.find_element_by_class_name('hdtb-mn-hd').click()
time.sleep(1)
driver.find_element_by_link_text('Past month').click()

# Need to sort results date
time.sleep(1)
driver.find_elements_by_xpath('//*[@id="hdtbMenus"]/div/div[3]/div')[0].click()
time.sleep(1)
driver.find_elements_by_xpath('//*[@id="sbd_1"]')[0].click()
Другие вопросы по тегам