一、鼠标控制
需要先导入:
from selenium.webdriver.common.action_chains import ActionChains
常见操作:
| 操作 | 作用 |
|–|–|
| click() | 单击左键 |
| double_click | 双击左键 |
| context_click() | 右键 |
| move_to_element() | 悬停 |
| drag_and_drop() | 拖动 |
| perform() | 执行所有存储在ActionChains中的动作 |
其中:
- 左键不通过ActionChains也可以实现。
- 拖动需要两个必要参数
- source:拖动的元素
- target:目标,鼠标需要拖动到的元素
以百度为例:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
# 访问百度
driver.get('https://baidu.com')
# 等待3秒
time.sleep(3)
# 定位到 更多 按钮
button_1 = driver.find_element(By.XPATH, '//*[@id="s-top-left"]/div/a')
# 在 更多 按钮处悬停
ActionChains(driver).move_to_element(button_1).perform()
# 等待3秒
time.sleep(3)
# 定位到搜索框
text_label = driver.find_element(By.XPATH, '//*[@id="kw"]')
# 在搜索框中输入 CSDN
text_label.send_keys('CSDN')
# 等待3秒
time.sleep(3)
# 定位到 百度一下 按钮
button_2 = driver.find_element(By.XPATH, '//*[@id="su"]')
# 单击按钮
button_2.click()
# 等待3秒
time.sleep(3)
# 关闭所有页面
driver.quit()
二、键盘控制
需要先导入:
from selenium.webdriver.common.keys import Keys
常见操作:
| 操作 | 作用 |
|–|–|
| Keys.ENTER | 回车键 |
| Keys.BACK_SPACE | backspace键 |
| Keys.CONTROL | crntrol键 |
| Keys.F1 | F1键 |
| Keys.TAB | tab键 |
| Keys.ESCAPE | esc键 |
| Keys.ALT | alt键 |
| Keys.SHIFT | shift键 |
| Keys.SPACE | 空格 |
| Keys.ARROW_UP | 向上的箭头 |
| Keys.ARROW_DOWN | 向下的箭头 |
| Keys.ARROW_LEFT | 向左的箭头 |
|Keys.ARROW_ RIGHT | 向右的箭头 |
常见组合操作:
| 操作 | 作用 |
|–|–|
| (Keys.CONTROL, ‘a’) | 全选 |
| (Keys.CONTROL, ‘c’) | 复制 |
| (Keys.CONTROL, ‘v’) | 粘贴 |
以百度为例:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
# 访问百度
driver.get('https://baidu.com')
# 等待3秒
time.sleep(3)
# 定位到搜索框
text_label = driver.find_element(By.XPATH, '//*[@id="kw"]')
# 在搜索框中输入 CSDN
text_label.send_keys('CSDN')
# 使用“Ctrl+A”对输入内容进行全选
text_label.send_keys(Keys.CONTROL, 'a')
# 使用“Ctrl+C”对输入内容进行复制
text_label.send_keys(Keys.CONTROL, 'c')
# 等待3秒
time.sleep(3)
# 使用backspace删掉选中内容
text_label.send_keys(Keys.BACK_SPACE)
# 等待3秒
time.sleep(3)
# 使用“Ctrl+C”对输入内容进行粘贴
text_label.send_keys(Keys.CONTROL, 'v')
# 等待3秒
time.sleep(3)
# 关闭所有页面
driver.quit()