Уточнение результатов поиска 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()