引入HTML页面

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>小菠萝测试笔记</title>
  6. </head>
  7. <body>
  8. <a>用户名:</a>
  9. <input id="username" class="username">
  10. <a>密码</a>
  11. <input id="password" name="password">
  12. <button class="login">登录</button>
  13. <br>
  14. <p>测试啦</p>
  15. <p>再一次测试啦</p>
  16. <br>
  17. <a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202s0"
  18. class="mnav sp dot">终极抗击肺炎啊</a>
  19. <a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-2020"
  20. class="mnav sp dot">抗击肺炎</a>
  21. <a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202s0"
  22. class="mnav sp dot">抗击肺炎</a>
  23. <div>
  24. <ul>
  25. <li class="li">111</li>
  26. <li class="li">222</li>
  27. <li class="li">333</li>
  28. </ul>
  29. <ul>
  30. <li>aaa</li>
  31. <li>bbb</li>
  32. <li>ccc</li>
  33. </ul>
  34. </div>
  35. </body>
  36. </html>

背景

用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。
而selenium给我们提供了一个类来处理这类事件—— ActionChains

有哪些鼠标操作呢?

  • 执行操作
  • 左键、右键单击、双击
  • 鼠标悬停到元素、偏移处
  • 长按
  • 拖动

点击右边目录即可跳转哦! ———————>>>>>>>>>>

执行操作

perform() 方法
主要是调用其他操作方法后,都要再次调用这个方法,表示执行某个鼠标操作,后面会有例子

左键、右键单击、双击

  1. from selenium.webdriver import ActionChains
  2. from selenium import webdriver
  3. driver = webdriver.Chrome("../resources/chromedriver.exe")
  4. # 创建实例
  5. chains = ActionChains(driver)
  6. # 访问网址
  7. driver.get("file:///C:/test.html")
  8. # 登录按钮
  9. username = driver.find_element_by_id("username")
  10. login_btn = driver.find_element_by_class_name("login")
  11. password = driver.find_element_by_id("password")
  12. # 左键点击
  13. chains.click(username).perform()
  14. # 右键点击
  15. chains.context_click(username).perform()
  16. # 双击
  17. chains.double_click(password).perform()

鼠标悬停到元素、偏移处

  1. # 悬停到设置按钮
  2. chains.move_to_element(login_btn).perform()
  3. # 悬停到指定偏移量
  4. chains.move_to_element_with_offset(login_btn, 2, 2).perform()

知识点

move_to_element_with_offset() 是先找到元素,再根据元素位置偏移指定偏移量

长按

  1. # 长按
  2. chains.click_and_hold(login_btn).perform()

拖动

  1. # 拖动1
  2. chains.drag_and_drop(source=username, target=password)
  3. # 拖动2
  4. chains.drag_and_drop_by_offset(source=username, xoffset=20, yoffset=20)

知识点

  • drag_and_drop 将源元素拖动到目标元素处
  • drag_and_drop_by_offset 将源元素拖动指定偏移量

转载: https://www.cnblogs.com/poloyy/p/12584192.html