一、 配置 selenium 环境
1.1 安装 selenium
1、通过命令行安装
pip install selenium
2、通过 PyCharm 安装
1.2 安装谷歌浏览器驱动
1、查看当前谷歌浏览器的版本
2、安装谷歌浏览器驱动
谷歌浏览器驱动下载地址:
https://registry.npmmirror.com/binary.html?path=chromedriver/
将谷歌浏览器驱动放到谷歌文件夹下
selenium 的操作
访问浏览器
# 导包
from selenium import webdriver
# 获取驱动
driver = webdriver.Chrome()
# 打开百度浏览器
driver.get("https:/www.baidu.com")
元素定位操作
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector() // 有多个 class 的时候使用这个
在elemen
t变成elements
就是找所有满足的条件,返回数组。
通过 xpath 获取元素
粘贴复制就可以了
控制浏览器操作
- 控制浏览器大小
driver.set_window_size(480, 800)
- 控制浏览器后退,前进
driver.back() #后退
driver.forward() #前进
- 刷新
driver.refresh() # 刷新
Webelement 常用方法
- 点击和输入
driver.find_element_by_id(“kw”).clear() # 清除文本
driver.find_element_by_id(“kw”).send_keys(“selenium”) # 模拟按键输入
driver.find_element_by_id(“su”).click() # 单击元素
- 提交
可以在搜素框模拟回车操作
第一种方式
driver.find_element_by_id(“kw”).send_keys(“Python”) # 向搜索框输入文本
driver.find_element_by_id(“su”).click() # 点击【百度一下】
第二种方式
search_text = driver.find_element_by_id(“kw”) # 获取搜索框元素
search_text.send_keys(‘selenium’) # 向搜索框输入值
search_text.submit() # 相当点击 【百度一下】
鼠标操作
在 WebDriver
中,将这些关于鼠标操作的方法封装在 ActionChains
类提供。
ActionChains
类提供了perform(): 执行所有 ActionChains 中存储的行为;
- context_click(): 右击;
- double_click(): 双击;
- drag_and_drop(): 拖动;
- move_to_element(): 鼠标悬停。鼠标操作的常用方法:
一个例子:
from selenium import webdriver
# 引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get("https://www.baidu.cn")
# 定位到要悬停的元素
above = driver.find_element_by_link_text("设置")
# 对定位到的元素执行鼠标悬停操作
ActionChains(driver).move_to_element(above).perform()
键盘事件
以下为常用的键盘操作
- send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
- send_keys(Keys.SPACE) 空格键(Space)
- send_keys(Keys.TAB) 制表键(Tab)
- send_keys(Keys.ESCAPE) 回退键(Esc)
- send_keys(Keys.ENTER) 回车键(Enter)
- send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
- send_keys(Keys.CONTROL,‘c’) 复制(Ctrl+C)
- send_keys(Keys.CONTROL,‘x’) 剪切(Ctrl+X)
- send_keys(Keys.CONTROL,‘v’) 粘贴(Ctrl+V)
- send_keys(Keys.F1) 键盘 F1
- ……
- send_keys(Keys.F12) 键盘 F12
# 输入框输入内容
driver.find_element_by_id("kw").send_keys("seleniumm")
# 删除多输入的一个 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)