Я пытаюсь уточнить свои результаты после использования Selenium и Chrome с python для автоматизации поиска в Google и получения отсортированных ссылок. Я могу успешно получить начальные результаты поиска с помощью сценария и автоматически нажать кнопку «Инструменты».
Суть в том, что я не могу определить необходимые HTML-теги для доступа и выбрать / щелкнуть раскрывающийся список временных рамок, по умолчанию установлен «В любое время», а затем выбрать / щелкнуть раскрывающийся список «Релевантность» для сортировки по дате. Я пробовал Select, но использую неправильные теги для этого метода. Я использовал 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()






Вам не хватает .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()
Да, метка была хитрой. вот почему я пошел прямо на xpath. рад, что получилось, обязательно приму ответ.
Я пробовал .click (), но не понял, какие теги должны быть в остальных. Это решило проблему, спасибо.