Selenium模块的ActionChains类支持模拟鼠标的单独操作及组合操作,其常用鼠标操作函数如下表所示:
| 序号 | 名称 | 说明 |
|---|---|---|
| 1 | click | 单击元素,如果不指定元素则点击当前鼠标位置 |
| 2 | click_and_hold | 在元素上按下鼠标左键(不松开) |
| 3 | double_click | 双击元素 |
| 4 | context_click | 右击元素。 |
| 5 | drag_and_drop | drag_and_drop(source, target),将源元素拖放到目标元素 |
| 6 | drag_and_drop_by_offset | drag_and_drop_by_offset(source, xoffset, yoffset): 将源元素拖放到指定的偏移量 |
| 7 | move_by_offset | move_by_offset(xoffset, yoffset): 将鼠标从当前位置移动指定的偏移量 |
| 8 | move_to_element | 将鼠标移动到指定元素上 |
| 9 | move_to_element_with_offset | move_to_element_with_offset(to_element, xoffset, yoffset): 将鼠标移动到指定元素的指定偏移位置 |
| 10 | release | 释放按下的鼠标按钮 |
以登录新浪邮箱为例,将鼠标移动到用户名输入框,输入用户名后按回车切换到密码输入框,然后点击登录按钮。示例程序及运行效果如下所示:
1driver = webdriver.Chrome() 2driver.get("https://mail.sina.com.cn/") 3 4time.sleep(3) 5 6username = driver.find_element(By.ID, "freename") 7ActionChains(driver).move_to_element(username)\ 8 .click()\ 9 .send_keys("testusername")\ 10 .send_keys(Keys.ENTER)\ 11 .pause(1)\ 12 .send_keys("testpassword")\ 13 .perform() 14 15time.sleep(1) 16login_btn=driver.find_element(By.CLASS_NAME, "loginBtn") 17ActionChains(driver).move_to_element(login_btn)\ 18 .click()\ 19 .perform() 20

参考文献:
[1]https://www.selenium.dev/zh-cn/
[2]https://www.selenium.dev/zh-cn/documentation/webdriver/getting\_started/
[3]https://blog.csdn.net/kk\_lzvvkpj/article/details/148610502
[4]https://registry.npmmirror.com/binary.html?path=chromedriver/
[5]https://chromedriver.chromium.org/
[6]https://www.runoob.com/selenium/selenium-mouse-and-keyboard-operation.html
《学习Python中Selenium模块的基本用法(18:使用ActionChains操作鼠标)》 是转载文章,点击查看原文。
