8.8 Selenium模拟用户的常见操作
8.8.1 模拟鼠标操作
Selenium提供了多种模拟鼠标操作的方法,如点击、双击、右击和悬停等。
- 点击(Click) :
使用click()方法模拟鼠标点击。
python
element.click()
- 双击(Double Click) :
虽然Selenium WebDriver API本身没有直接的double_click()方法,但可以通过ActionChains类来实现。
python
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.double_click(element).perform()
- 右击(Right Click) :
同样使用ActionChains类。
python
actions.context_click(element).perform()
- 悬停(Hover):模拟鼠标悬停在元素上。
python
actions.move_to_element(element).perform()
8.8.2 模拟键盘操作
- 输入文本(Send Keys) :
使用send_keys()方法模拟键盘输入。
python
element.send_keys("Hello, Selenium!")
- 特殊按键 :
send_keys()方法还支持发送特殊按键,如回车键(Keys.RETURN)、制表符(Keys.TAB)等。
常见键盘事件代码如下,注意要先导入:
from selenium.webdriver.common.keys import Keys
| 键盘事件代码 | **备注 ** |
|---|---|
| send_keys(Keys.BACK_SPACE) | 删除键BackSpace |
| send_keys(Keys.SPACE) | 空格键Space |
| send_keys(Keys.TAB) | 制表键Tab |
| send_keys(Keys.ESPACE) | 回退键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 |
python
element.send_keys("username", Keys.TAB, "password", Keys.RETURN)
示例代码演示模拟用户登录、填写表单等操作
python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com/login")
# 填写用户名和密码
username_input = driver.find_element(By.ID, "username")
password_input = driver.find_element(By.ID, "password")
username_input.send_keys("user123")
password_input.send_keys("pass123", Keys.RETURN)
# 登录后,假设需要填写一个表单
form_input = driver.find_element(By.ID, "form_input")
form_input.send_keys("Hello, this is a test.")
form_submit = driver.find_element(By.ID, "submit_button")
form_submit.click()
# 后续操作...
driver.quit()