按时间范围和日期优化Selenium Google搜索结果

时间:2018-12-18 19:50:14

标签: python html selenium katalon-recorder

在将Selenium和Chrome与python结合使用以自动执行Google搜索并获得排序后的链接后,我正在尝试优化搜索结果。我可以使用脚本成功获取初始搜索结果,然后自动单击“工具”按钮。

最底线是我无法找出访问和选择/单击时间范围下拉列表所需的HTML标记,默认为“任意时间”,然后选择/单击“相关性”下拉列表以按日期排序。我尝试了选择,但该方法使用了错误的标签。我已经使用了inspect元素和Katalon Recorder来解决它,但是却遇到语法错误,例如“找不到元素”。任何帮助表示赞赏。

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 个答案:

答案 0 :(得分:0)

您是否错过了.click()的{​​{1}}

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()