分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

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

发布时间:2023-09-06 02:12责任编辑:白小东关键词:Web
 JavaPythonRuby
鼠标事件右击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
键盘F1action.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‘]
数字1action.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 InterruptedException11 ????{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

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

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved