【Web自动化测试——代码篇五】常用方法——鼠标键盘事件

  Java Python Ruby
鼠标事件 右击 Actions action = new Actions(driver);

action.contextClick(inputBox).build().perform()

ActionChains(driver).context_click(元素).perform() driver.action.context_click(元素).perform
双击 action.doubleClick(元素).build().perform() ActionChains(driver).double_click(元素).perform() driver.action.double_click(元素).perform
左击 action.clickAndHold(元素).build().perform() ActionChains(driver).click_and_hold(元素).perform() driver.action.click_and_hold(元素).perform
拖动 action.dragAndDrop(源元素,目标元素).build().perform(); ActionChains(driver).drag_and_drop(源元素,目标元素).perform() driver.action.drag_and_drop(源元素,目标元素).perform
悬停 action.moveToElement(driver.findElement(元素).build().perform() ActionChains(driver).move_to_element(元素).perform() driver.action.move_to(元素).perform
键盘事件 回退键(Esc) action.sendKeys(元素, Keys.ESCAPE).perform() 元素.send_keys(Keys.ESCAPE) 元素.send_keys :escape
键盘F1 action.sendKeys(元素, Keys.F1).perform() 元素.send_keys(Keys.F1) 元素.send_keys :f1
Home键 action.sendKeys(元素, Keys.HOME).perform() 元素.send_keys(Keys.HOME) 元素.send_keys :home
End键 action.sendKeys(元素, Keys.END).perform() 元素.send_keys(Keys.END) 元素.send_keys :end
Insert键 action.sendKeys(元素, Keys.INSERT).perform() 元素.send_keys(Keys.INSERT) 元素.send_keys :insert
Delete键 action.sendKeys(元素, Keys.DELETE).perform() 元素.send_keys(Keys.DELETE) 元素.send_keys :delete
删除键(Backspace) action.sendKeys(元素, Keys.BACK_SPACE).perform() 元素.send_keys(Keys.BACK_SPACE) 元素.send_keys :backspace
制表键(Tab) action.sendKeys(元素, Keys.TAB).perform() 元素.send_keys(Keys.TAB) 元素.send_keys :tab
空格键(Space) action.sendKeys(元素, Keys.SPACE).perform() 元素.send_keys(Keys.SPACE) 元素.send_keys :space
回车键(Enter) action.sendKeys(元素, Keys.ENTER).perform() 元素.send_keys(Keys.ENTER) 元素.send_keys :enter
Shift键 action.sendKeys(元素, Keys.SHIFT).perform() 元素.send_keys(Keys.SHIFT) 元素.send_keys :shift
Alt键 action.sendKeys(元素, Keys.ALT).perform() 元素.send_keys(Keys.ALT) 元素.send_keys :alt
Page Up键(PgUp) action.sendKeys(元素, Keys.PAGE_UP).perform() 元素.send_keys(Keys.PAGE_UP) 元素.send_keys :page_up
Page Down键(PgDn) action.sendKeys(元素, Keys.PAGE_DOWN).perform() 元素.send_keys(Keys.PAGE_DOWN) 元素.send_keys :page_down
上键(↑) action.sendKeys(元素, Keys.UP).perform() 元素.send_keys(Keys.UP) 元素.send_keys :up
下键(↓) action.sendKeys(元素, Keys.DOWN).perform() 元素.send_keys(Keys.DOWN) 元素.send_keys :down
左键(←) action.sendKeys(元素, Keys.LEFT).perform() 元素.send_keys(Keys.LEFT) 元素.send_keys :enter
右键(→) action.sendKeys(元素, Keys.RIGHT).perform() 元素.send_keys(Keys.RIGHT) 元素.send_keys :left
全选(Ctrl+A) driver.findElement(By.id("kw")).sendKeys(Keys.chord(Keys.CONTROL,"a")) 元素.send_keys(Keys.CONTROL,‘a‘) 元素.send_keys [:control, ‘a‘]
复制全选(Ctrl+C) driver.findElement(By.id("kw")).sendKeys(Keys.chord(Keys.CONTROL,"c")) 元素.send_keys(Keys.CONTROL,‘c‘) 元素.send_keys [:control, ‘c‘]
剪切全选(Ctrl+X) driver.findElement(By.id("kw")).sendKeys(Keys.chord(Keys.CONTROL,"x")) 元素.send_keys(Keys.CONTROL,‘x‘) 元素.send_keys [:control, ‘x‘]
粘贴全选(Ctrl+V) driver.findElement(By.id("kw")).sendKeys(Keys.chord(Keys.CONTROL,"v")) 元素.send_keys(Keys.CONTROL,‘v‘) 元素.send_keys [:control, ‘v‘]
数字1 action.sendKeys(元素, Keys.NUMPAD1).perform() 元素.send_keys(Keys.NUMPAD1) 元素.send_keys :numpad1
在调用部分方法之前需要导入对应的包

Java:

import org.openqa.selenium.interactions.Actions

Python:

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.keys import Keys

↓↓↓o( o`ω′)ツ┏━┓(敲桌子~~~)注意往下看:

在Java中鼠标事件和键盘单键事件中需要引用的是刚才所说的包。为什么我不在键盘组合键事件中没有采用该方法呢?因为我尝试了多次都没有成功(如果各位小伙伴知道该方法的组合键使用方法请留言呦~),所以在键盘组合键事件采用的了另一个方法(该方法不需要导入Actions包),该方法是同样适用于键盘单键事件的。

**代码时间 **

( ̄??)hahahaha事件有点多,这里就挑几个来跑个代码(有兴趣的可以自己全部实验一下(^U^)ノYO)

Java

 1 package JavaTest;
 2
 3 import org.openqa.selenium.By;
 4 import org.openqa.selenium.Keys;
 5 import org.openqa.selenium.WebDriver;
 6 import org.openqa.selenium.firefox.FirefoxDriver;
 7 import org.openqa.selenium.interactions.Actions;
 8
 9 public class Test {
10     public static void main(String[] arg) throws InterruptedException
11     {
12         WebDriver driver = new FirefoxDriver();
13         driver.get("http://www.baidu.com/");
14
15         Actions action = new Actions(driver);
16         driver.findElement(By.id("kw")).sendKeys("Java1");  //对百度输入框赋值
17         Thread.sleep(2000);
18         action.sendKeys(driver.findElement(By.id("kw")), Keys.BACK_SPACE).perform(); //删除键
19         action.sendKeys(driver.findElement(By.id("kw")), Keys.ENTER).perform(); //回车键
20         Thread.sleep(2000);
21         driver.findElement(By.id("kw")).sendKeys(Keys.chord(Keys.CONTROL,"a")); //复制
22         Thread.sleep(2000);
23         driver.findElement(By.id("kw")).sendKeys(Keys.chord(Keys.CONTROL,"x")); //剪切
24         Thread.sleep(2000);
25         driver.close();  //结束
26     }
27 }

Python

 1 from time import *
 2 from selenium import webdriver
 3 from selenium.webdriver.common.by import By
 4 from selenium.webdriver.common.keys import Keys
 5
 6 # 启动Firefox浏览器
 7 driver = webdriver.Firefox()
 8 driver.get(‘http://www.baidu.com‘)
 9
10 driver.find_element(By.XPATH,"//*[@class=‘s_ipt‘]").send_keys(‘Python1‘)  # 对百度输入框赋值
11 sleep(2)
12 driver.find_element(By.ID,‘kw‘).send_keys(Keys.BACK_SPACE) # 删除键
13 driver.find_element_by_xpath("//input[@type=‘submit‘]").send_keys(Keys.ENTER)  # 回车键
14 sleep(2) # 休眠2秒
15 driver.find_element(By.ID,‘kw‘).send_keys(Keys.CONTROL, ‘A‘) # 复制
16 sleep(2) # 休眠2秒
17 driver.find_element(By.ID,‘kw‘).send_keys(Keys.CONTROL, ‘X‘)  # 剪切
18 sleep(2)
19
20 driver.close() # 结束

Ruby

 1 class Baidu
 2   require ‘rubygems‘
 3   require ‘selenium-webdriver‘
 4
 5   #打开firefox并输入网址
 6   driver = Selenium::WebDriver.for :firefox
 7   driver.navigate.to "http://www.baidu.com"
 8
 9   driver.find_element(:name, ‘wd‘).send_keys(‘Ruby1‘)  # 对百度输入框赋值
10   sleep(2) # 休眠2秒
11   driver.find_element(:id, ‘kw‘).send_keys :backspace # 删除键
12   driver.find_element(:id, ‘kw‘).send_keys :enter # 回车键
13   sleep(2)
14   driver.find_element(:xpath, "//*[@class=‘s_ipt‘]").send_keys [:control,‘a‘] # 复制
15   sleep(2)
16   driver.find_element(:id, ‘kw‘).send_keys [:control,‘x‘] # 剪切
17   sleep(2)
18
19   driver.close #退出程序
20 end

原文地址:https://www.cnblogs.com/CSgarcia/p/9413827.html

时间: 2024-11-07 23:05:15

【Web自动化测试——代码篇五】常用方法——鼠标键盘事件的相关文章

【Web自动化测试——代码篇四】常用方法——常见元素操作

浏览器这个大框架我们都能控制,区区页面小元素又能奈我们何!!!之前的[Web自动化测试--代码篇二]条条大路找元素 已经讲述了许多获取元素的方法,在此基础上我们来认识几个元素最常见的相关操作?(ˉ﹃ˉ?)   Java Python Ruby 输入内容 sendKeys(*value) send_keys(*value) send_keys(*value) 单击元素 click() click() click 清除文本 clear() clear() clear 提交表单 submit() su

【Web自动化测试——代码篇八】常用方法——上传/下载文件

上传文件 对于Web页面的上传功能实现一般有一下俩种方式: 普通上传:将本地文件的路径作为一个值放在input标签中,通过form表单将这个值提交给服务器(不做介绍send_keys方法). AutoIt上传:利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 下面我们实际操作一下来讲解AutoIt上传文件的过程: 1.安装AutoIt(下载网址:https://www.autoitscript.com/site/autoit/downloads/) 2.打开AutoIt Windo

selenium鼠标键盘事件(转)

概念 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys

做UI最全的鼠标键盘事件!

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是ActionChains类,在使用该类做键盘操作的过程中会配合使用到 Keys 数据存储类,Keys包含键盘上所有特殊按键. 一.鼠标点击操作 click(element=None)左击context_click(element=N

Python - selenium_WebDriver 鼠标键盘事件

from selenium import webdriver #引入ActionChains类 提供了鼠标的操作方法 from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys from ReadTxt_demo import readTxt import time #鼠标键盘事件 ''' ActionChains 常用方法 per

Linux 模拟 鼠标 键盘 事件

/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: * 以前看到有些软件能够控制鼠标移动,键盘操作等功能,总想知道这些到底 * 是怎么做到的,好像是2年前也尝试去做这件事,但那时候对知识的匮乏直接导致 * 无法进行,早上突然想到这件事,于是又搜索了一下,鉴于目前经常接触Linux * 驱动,对这些东西的理解也就很容易. * * 2016-2-27 深

Selenese 命令清单 - 鼠标键盘事件控制命令

点击链接加入群[悦分享测试联盟]:https://jq.qq.com/?_wv=1027&k=5DiePik 简介 Selenium为用户提供了大量的Selenese命令,可以非常方便的为用户编写脚本实用,其中实际场景运用需要的并不多,为了能更好的利用这些命令,我对几乎所有Selenese命令做了分类,分类内容如下: 包含操作页面元素常用命令,以及一些不常用到的高级使用命令 对鼠标键盘事件控制命令 wait相关命令 veriy相关命令 assert相关命令 store存储器相关命令 Part I

自动化测试基础篇--Selenium鼠标键盘事件

前面几篇文章我们学习了怎么定位元素,同时通过实例也展示了怎么切换到iframe,怎么输入用户名和密码,怎么点击登录按钮,首先我们先回顾一下元素的基本操作. 1.点击(鼠标左键)页面按钮:click() 2.请空输入框:clear() 3.输入字符串:send_keys() 4.提交表单:submit() 今天这篇文章着重讲一下键盘和鼠标的模拟事件. 一.鼠标事件 1.首先模拟鼠标的操作需要先导入鼠标模块: from selenium.webdriver.common.action_chains

c# 使用hook来监控鼠标键盘事件的示例代码

如果这个程序在10几年前,QQ刚刚兴起的时候,有了这个代码,就可实现盗号了. 当然使用钩子我们更多的是实现"全局快捷键"的需求. 比如 程序最小化隐藏后要"某快捷键"来启动它. 钩子(hook),通俗的讲,她可以捕获到你的键盘和鼠标的相关操作消息. 关于hook的相关代码网上一搜一箩筐,这是整理起来比较完善和使用最方便的. //Declare wrapper managed POINT class. [StructLayout(LayoutKind.Sequenti