【selenium】鼠标控制和键盘控制


一、鼠标控制

需要先导入:

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()


Author: Polaris119
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Polaris119 !
评论
  TOC