zoukankan      html  css  js  c++  java
  • selenium(3)-针对鼠标的操作

    背景

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。

    而selenium给我们提供了一个类来处理这类事件-----------ActionChains

    有哪些鼠标操作呢

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

    执行操作

    perform() 方法

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

    左键右键,单击双击

     1 from selenium.webdriver import ActionChains
     2 from selenium import webdriver
     3 
     4 driver = webdriver.Chrome(r"H:/cci/data/chromedriver.exe")
     5 
     6 # 创建实例
     7 chains = ActionChains(driver)
     8 
     9 # 访问网址
    10 driver.get("禅道的url")
    11 
    12 # 登录按钮
    13 username = driver.find_element_by_id("account")
    14 login = driver.find_element_by_id("submit")
    15 password = driver.find_element_by_name("password")
    16 
    17 # 左键点击
    18 chains.click(username).perform()
    19 
    20 # 右键点击
    21 chains.context_click(username).perform()
    22 
    23 # 双击
    24 chains.double_click(password).perform()

    鼠标悬停到元素,指定偏移处

    1 # 悬停到登录按钮
    2 chains.move_to_element(login_btn).perform()
    3 
    4 # 悬停到指定偏移量
    5 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 # 拖动到某个元素后松开
    2 chains.drag_and_drop(source=username, target=password)
    3 
    4 # 拖动到某个坐标值
    5 chains.drag_and_drop_by_offset(source=username, xoffset=20, yoffset=20)

    知识小节

    • drag_and_drop 将源元素拖动到目标元素处
    • drag_and_drop_by_offset 将源元素拖动到指定的坐标
  • 相关阅读:
    SQL 通配符
    正则表达式
    与运算(&)、或运算(|)、异或运算(^)、右移运算符(>>>)本质介绍
    博客园博客目录自动生成(页面目录)
    Linux查看并杀死被占用的端口
    Eclipse的环境配置
    L-Rui
    Web页面弹出窗口代码大全
    linux-用户
    linux-网络
  • 原文地址:https://www.cnblogs.com/xinhua19/p/13156740.html
Copyright © 2011-2022 走看看