• 从0开始python学习-23.selenium 常见鼠标的操作


    注意:必须创建一个事件链对象(ActionChains);最后鼠标事件链完成之后一定要进行事务提交perform()(如果事件链不提交那么所有的鼠标事件都不会执行)
    1. 左键单击:click()       
    2. 在元素上按住鼠标左键,不松开:click_and_hold( on_element=None )            
    3. 右击:context_click()             
    4. 左键双击:double_click()             
    5. 点击鼠标左键,按住不放:click_and_hold()         
    6. 在某个元素位置松开鼠标左键:release(on_element=None) 
    7. 拖动某个元素至目标元素处:drag_and_drop(source, target)   
    8. 鼠标移动到某个元素:move_to_element(element)         
    9. 鼠标移动到距离当前位置(x,y)的地方:move_by_offset(xoffset, yoffset) 
    10.将鼠标移动到距某个元素多少距离的位置:move_to_element_with_offset(to_element, xoffset, yoffset)
    11.执行所有 ActionChains 中存储的行为:perform()     
    12.在源元素上按住鼠标左键,然后移动到目标偏移并释放鼠标按钮:drag_and_drop_by_offset(源, xoffset , yoffset )   
    1. from time import sleep
    2. from selenium import webdriver
    3. from selenium.webdriver.common.by import By
    4. from selenium.webdriver import Keys, ActionChains
    5. driver = webdriver.Chrome()
    6. url = "https://www.baidu.com/"
    7. driver.get(url)
    8. driver.maximize_window ()
    9. # 输入框:
    10. # 百度一下:
    11. element_kw = driver.find_element(By.XPATH, '//*[@id="kw"]')
    12. element_kw.send_keys('11112')
    13. element_su = driver.find_element(By.XPATH,'//*[@id="su"]')
    14. actions = ActionChains(driver)
    15. # 左键单击:click()
    16. element_su.click()
    17. # 在元素上按住鼠标左键,不松开:click_and_hold( on_element=None )
    18. # 在某个元素位置松开鼠标左键:release(on_element=None)
    19. # 如果参数不写,那么点的是当前鼠标位置; 如果参数写定位到的元素对象element,那就是点这个元素
    20. actions.click_and_hold(element_su).release(element_su).perform()
    21. # 右击:context_click()
    22. actions.context_click(element_su).perform()
    23. # 左键双击:double_click()
    24. actions.double_click(element_su).perform()
    25. # 拖动某个元素至目标元素处:drag_and_drop(source, target)
    26. # source:鼠标按下的元素;target:鼠标向上的元素
    27. url_drag = 'file:///D:/study/%E8%AF%BE%E5%A0%82%E8%B5%84%E6%96%99/14drag.html'
    28. driver.get(url_drag)
    29. el4 = driver.find_element(By.XPATH, '//*[@id="div1"]')
    30. el5 = driver.find_element(By.XPATH, '//*[@id="div2"]')
    31. actions.drag_and_drop(el4,el5).perform()
    32. # 鼠标移动到某个元素:move_to_element(element)
    33. element_set = driver.find_element(By.LINK_TEXT,"设置")
    34. actions.move_to_element(element_set).perform()
    35. # 鼠标移动到距离当前位置(x,y)的地方:move_by_offset(xoffset, yoffset)
    36. # xoffset:要移动到的 X 偏移量,作为正整数或负整数。yoffset:要移动到的 Y 偏移量,作为正整数或负整数。
    37. actions.move_by_offset(0,100).perform() # 不能实现出来功能,有大佬懂的可以帮助下吗
    38. # 将鼠标移动到距某个元素多少距离的位置:move_to_element_with_offset(to_element, xoffset, yoffset)
    39. element_set = driver.find_element(By.LINK_TEXT,"设置")
    40. actions.move_to_element_with_offset(element_set,100,100).perform()
    41. # 在源元素上按住鼠标左键,然后移动到目标偏移并释放鼠标按钮:drag_and_drop_by_offset(源, xoffset , yoffset )
    42. # source:鼠标按下的元素。xoffset:要移动到的 X 偏移量。yoffset:要移动到的 Y 偏移量。
    43. url_drag = 'file:///D:/study/%E8%AF%BE%E5%A0%82%E8%B5%84%E6%96%99/14drag.html'
    44. driver.get(url_drag)
    45. el5 = driver.find_element(By.XPATH, '//*[@id="div2"]')
    46. actions.click_and_hold(el5).perform() # 先用鼠标按住需要拖动的元素,不松开
    47. actions.drag_and_drop_by_offset(el5,500, 500).perform() # 然后再进行元素的拖动
    48. sleep(10)
    49. driver.quit()

  • 相关阅读:
    贪心:区间问题
    Hive使用Tez引擎的好处
    合作式智能运输系统 应用层交互技术要求 第 1 部分:意图共享与协作
    R语言基于正则表达式筛选dataframe数据列、使用grepl函数按照正则表达式筛选数据列
    算法刷题-链表
    9.Springboot整合Security很全
    Design Pattern —— 创建型 —— 单例模式(上) ——概念特点、面试常问、具体实践案例、源码解读
    企业电子招投标采购系统——功能模块&功能描述+数字化采购管理 采购招投标
    在行情一般的情况下,就说说23级应届生如何找java工作
    风车IM即时通讯系统APP源码DJ2403版完整苹果安卓教程
  • 原文地址:https://blog.csdn.net/Meseiter/article/details/133463997