在将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()
答案 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()