zoukankan      html  css  js  c++  java
  • selenium-Python之鼠标事件

           通过click()来模拟鼠标的单击操作,鼠标还具有鼠标右击,双击,悬停甚至鼠标拖动等功能。在webdriver中,将这些鼠标操作方法封装在ActionChains类提供。

    ActionChains类提供鼠标的常用方法:

     1)perform():执行所有ActionChains中存储的行为

    2)context_click():右击

    3)double_click():双击

    4)drag_and_drop():拖动

    5)move_to_element(): 鼠标悬停

    1.鼠标右击操作

    对于ActionChains类所提供的的鼠标方法与click()方法的用法有所不同。

     代码:

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    driver = webdriver.Firefox()
    driver.get("http://192.168.xxx.xxxx:1080/")

    #定位到要右击的元素
    right_click = driver.find_element_by_xpath("/html/body/nav/ul/li[5]/a")
    #对定位到的元素执行鼠标右键操作
    ActionChains(driver).context_click(right_click).perform()
    driver.quit()

    注:

    1.from selenium webdriver import ActionChains  导入提供鼠标操作的ActionChains类。

    2.ActionChains(driver)调入ActionChains()类,将浏览器驱动driver作为参数传入。

    3.contex_click()方法用于模拟鼠标右键操作,在调用时需要指定元素定位。

    4.perform()执行所有ActionChains中存储的行为,可以理解为对整个操作的提交动作

    2.鼠标悬停

    鼠标悬停弹出下栏菜单是一个常见的功能设计

    move_to_element()方法可以模拟鼠标悬停的动作,其用法与context_click()相同。

    3.鼠标双击操作

    double_click()方法用于模拟鼠标双击操作。

    4.鼠标拖放操作

    drag_and_drop(coure,target)在源元素上按住鼠标左键,然后移动到目标元素上释放。

    1.soure()鼠标拖放的源元素。

    2.target:鼠标释放的目标元素

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    driver = webdriver.Firefox()
    driver.get("http://192.168.10.61:1080/")

    #定位到要右击的元素
    right_click = driver.find_element_by_xpath("/html/body/nav/ul/li[5]/a")
    #对定位到的元素执行鼠标右键操作
    ActionChains(driver).context_click(right_click).perform()

    above = driver.find_element_by_xpath("/html/body/nav/ul/li[1]/a")
    #对定位的元素执行悬停操作
    ActionChains(driver).move_to_element(above).perform()


    #定位到要悬停的元素
    double_click=driver.find_element_by_xpath("/html/body/nav/ul/li[2]/a")
    #对定位的元素执行双击操作
    ActionChains(driver).double_click(double_click).perform()

    #定位元素的原位置
    element = driver.find_element_by_xpath("/html/body/nav/ul/li[3]/a")
    #定位元素要移动到的目标位置
    target = driver.find_element_by_xpath("/html/body/nav/ul/li[4]/a")
    #执行元素的拖放操作
    ActionChains(driver).drag_and_drop(element,target).perform()
    driver.quit()

  • 相关阅读:
    从hadoop框架与MapReduce模式中谈海量数据处理
    Hadoop
    Clone Graph
    Gas Station
    ZigZag Conversion
    String to Integer (atoi)
    Palindrome Number
    Container With Most Water
    Longest Common Prefix
    求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7095490.html
Copyright © 2011-2022 走看看