from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path='./chromedriver') bro.get('https://www.taobao.com/') #标签定位 search_input = bro.find_element_by_id('q') #标签交互 search_input.send_keys('Iphone') #执行一组js程序 bro.execute_script('window.scrollTo(0,document.body.scrollHeight)') sleep(2) #点击搜索按钮 btn = bro.find_element_by_css_selector('.btn-search') btn.click() bro.get('https://www.baidu.com') sleep(2) #回退 bro.back() sleep(2) #前进 bro.forward() sleep(5) bro.quit()
分析:
- 1、定位搜索框按钮,可以查看到需要使用 id进行标签定位,然后输入搜索的内容;

2、定位搜索按钮,进行搜索操作,可以查看到需要使用 class 进行标签定位;

二、Selenium其他自动化操作示例
2.1、打开tb,进行商品搜索
from selenium import webdriver import time # 实例化一个浏览器对象 driver = webdriver.Chrome() driver.get('https://www.taobao.com/') # 标签定位 search_input = driver.find_element_by_id('q') # 使用 id 进行定位 # 标签交互 search_input.send_keys('李宁') # 录入商品 # 根据class定位,点击搜索按钮 btn = driver.find_element_by_css_selector('.btn-search') btn.click() time.sleep(2) driver.close()
2.2、实现浏览器滚轮操作
- 在浏览器的 console中执行一段 js 代码可以进行滚轮一页的操作 :

- js 代码让Selenium自动执行测试
from selenium import webdriver import time # 实例化一个浏览器对象 driver = webdriver.Chrome() driver.get('https://www.taobao.com/') # 标签定位 search_input = driver.find_element_by_id('q') # 使用 id 进行定位 # 标签交互 search_input.send_keys('李宁') # 录入商品 # 执行一组js代码 driver.execute_script('window.scrollBy(0, document.body.scrollHeight)') time.sleep(2) # 根据class定位,点击搜索按钮 btn = driver.find_element_by_css_selector('.btn-search') btn.click() time.sleep(2) driver.close()
2.3、浏览器执行前进和后退
from selenium import webdriver import time # 实例化一个浏览器对象 driver = webdriver.Chrome() driver.get('https://www.taobao.com/') # 标签定位 search_input = driver.find_element_by_id('q') # 使用 id 进行定位 # 标签交互 search_input.send_keys('李宁') # 录入商品 # 执行一组js代码 driver.execute_script('window.scrollBy(0, document.body.scrollHeight)') time.sleep(2) # 根据class定位,点击搜索按钮 btn = driver.find_element_by_css_selector('.btn-search') btn.click() driver.get('https://www.baidu.com') time.sleep(1) # 后退 driver.back() time.sleep(1) # 前进 driver.forward() time.sleep(2) driver.close()