同样是以百度搜索为例,每天我们来上网搜索很多东西,每次的搜索步骤都是一样的,就只是关键字不一样,在这种情况下可以考虑将关键字放到数组中,对关键字来进行搜索,本文提供几种搜索方法,顺便也结合回顾下之前学习的知识点:
1.将关键字存入数组中,每次搜索读取关键字,搜索完成后关闭页面,进行下一个关键字的搜索
from selenium import webdriver
search_text = ['python','java','selenium']
for text in search_text:
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys(text)
driver.find_element_by_id("su").click()
driver.quit()
2.结合之前学过的back()方法,只打开一次搜索界面,来进行关键字搜索
from selenium import selenium
from time import sleep
search_text = ['python','java','selenium']
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
for text in search_text:
driver.find_element_by_id("kw").send_keys(text)
driver.find_element_by_id("su").click()
sleep(3)
driver.back()
driver.quit()
3.结合之前学习的Keys函数中提供的方法,对关键字执行剪切操作,进行多关键字搜索,并且对每次搜索结果进行截图显示
from selenium import webdriver
from time import sleep
#导入Keys模块
from selenium.webdriver.common.keys import Keys
search_text = ['python','java','selenium']
#用CONTROL+X实现搜索关键字
try:
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
for text in search_text:
driver.find_element_by_id("kw").send_keys(text)
driver.find_element_by_id("su").click()
sleep(5)
#对每次的搜索结果进行截图保存,图片以搜索关键字为名称保存
driver.get_screenshot_as_file("E:\\selenium_project\\5.3.2 参数化搜索关键字\\%s.png" %text)
#对搜索的关键字进行全选
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#选中关键字之后执行剪切操作
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
except BaseException as msg:
print(msg)
finally:
driver.quit()