• Selenium4 系列 鼠标、键盘操作详细解读


    有哪些鼠标操作呢?

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

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

     act.moveToElement(link).contextClick().sendKeys(Keys.ArrowsDown).build().perform();

    执行操作

    perform() 方法

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

    左键、右键单击、双击

    from selenium.webdriver import ActionChains
    from selenium import webdriver
    
    driver = webdriver.Chrome("../resources/chromedriver.exe")
    
    # 创建实例
    chains = ActionChains(driver)
    
    # 访问网址
    driver.get("file:///C:/test.html")
    
    # 登录按钮
    username = driver.find_element_by_id("username")
    login_btn = driver.find_element_by_class_name("login")
    password = driver.find_element_by_id("password")
    
    # 左键点击
    chains.click(username).perform()
    
    # 右键点击
    chains.context_click(username).perform()
    
    # 双击
    chains.double_click(password).perform()

    鼠标悬停到元素、偏移处

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

    知识点

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

    长按

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

    拖动

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

    知识点

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

    有什么键盘操作?

    • 删除键
    • 空格键
    • 制表键
    • 回退键
    • 回车键
    • 全选
    • 复制
    • 剪切
    • 粘贴
    • F1-F12
    • ......其实就是所有键盘都能模拟,包括alt、shift、insert、delete、home等等等...这里就不举例了,看源码很容易懂
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from time import sleep
    
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Chrome("../resources/chromedriver.exe")
    driver.maximize_window()
    
    # 访问网址
    driver.get("http://www.baidu.com")
    
    # 找到搜索框
    inputElement = driver.find_element_by_id("kw")
    
    # 输入搜索内容
    inputElement.send_keys("锐洋智能")
    
    # ctrl+a全选
    inputElement.send_keys(Keys.CONTROL, "a")
    
    sleep(1)
    
    # ctrl+c 复制输入框内容
    inputElement.send_keys(Keys.CONTROL, 'c')
    
    sleep(1)
    
    # ctrl+x 剪切输入框内容
    inputElement.send_keys(Keys.CONTROL, 'x')
    
    sleep(1)
    
    # ctrl+v 粘贴输入框内容
    inputElement.send_keys(Keys.CONTROL, 'v')
    
    sleep(1)
    
    # 空格键
    inputElement.send_keys(Keys.SPACE)
    
    sleep(1)
    
    # 后退键
    inputElement.send_keys(Keys.BACKSPACE)
    
    sleep(1)
    
    # tab键
    inputElement.send_keys(Keys.TAB)
    
    sleep(1)
    
    # 回车键
    inputElement.send_keys(Keys.ENTER)
    
    # 刷新页面
    inputElement.send_keys(Keys.F5)
  • 相关阅读:
    C#基础第五天-作业-用DataTable制作名片集
    C#基础第四天-作业答案-Hashtable-list<KeyValuePair>泛型实现名片
    C#基础第四天-作业-Hashtable-list<KeyValuePair>泛型实现名片
    C#基础第三天-作业答案-集合-冒泡排序-模拟名片
    C#基础第三天-作业-集合-冒泡排序-模拟名片
    C#基础第二天-作业答案-九九乘法表-打印星星
    C#基础第二天-作业-九九乘法表-打印星星
    C#基础第一天-作业答案
    C#基础第一天-作业
    C#-string.Format对C#字符串格式化
  • 原文地址:https://www.cnblogs.com/interdrp/p/15525579.html
Copyright © 2020-2023  润新知