selenium之常见键盘的操作

SeleniumWebDriver中的键盘操作与元素交互示例,
键盘操作需要通过send_keys()方法来进行输入内容,输入的内容可以根据用户需求指定输入键盘所有按键,键盘的操作需要结合导入keys类来进行使用;

常用操作:
1. 删除键(BackSpace):send_keys(Keys.BACK_SPACE)  
2. 空格键(Space):send_keys(Keys.SPACE)       
3. 制表键(Tab):send_keys(Keys.TAB)         
4. 回退键(Esc):send_keys(keys.ESCAPE)      
5. 回车键(Enter):send_keys(Keys.ENTER)       
6. Ctrl+A:send_keys(Keys.CONTROL,'a') 
7. Alt+C:send_keys(Keys.ALT,'c')     
8. Alt+V:send_keys(Keys.ALT,'v')           
9. 按下某个键盘上的键:key_down(value, element=None)
10.松开某个键:key_up(value, element=None) 
11.键盘右键:send_keys(Keys.RIGHT)

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import Keys, ActionChains
 
driver = webdriver.Chrome()
 
url = "https://www.baidu.com/"
 
driver.get(url)
 
driver.maximize_window ()
 
# 输入框:<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
# 百度一下:<input type="submit" id="su" value="百度一下" class="bg s_btn">
element = driver.find_element(By.XPATH, '//*[@id="kw"]')
 
element.send_keys('11112')
sleep(2)
 
# 回退键(Esc):send_keys(keys.ESCAPE)
element.send_keys(Keys.ESCAPE)
sleep(2)
 
# 回车键(Enter):send_keys(Keys.ENTER)
element.send_keys(Keys.ENTER)
 
# 删除键(BackSpace):send_keys(Keys.BACK_SPACE)
element.send_keys(Keys.BACK_SPACE)
sleep(2)
 
# 空格键(Space):send_keys(Keys.SPACE)
element.send_keys(Keys.SPACE)
sleep(2)
 
# 制表键(Tab):send_keys(Keys.TAB)
element.send_keys(Keys.TAB)
 
# Ctrl+A:send_keys(Keys.CONTROL,'a')
element.send_keys(Keys.CONTROL,'a')
sleep(2)
 
# Alt+C:send_keys(Keys.ALT,'c')
element.send_keys(Keys.CONTROL,'c')
sleep(2)
 
# 键盘右键:send_keys(Keys.RIGHT)
element.send_keys(Keys.RIGHT)
sleep(2)
 
# Alt+V:send_keys(Keys.ALT,'v')
element.send_keys(Keys.CONTROL,'v')
 
# 按下某个键盘上的键:key_down(value, element=None)
# 松开某个键:key_up(value, element=None)
# value:要发送的修饰键。在Keys类中定义。
# element:发送密钥的元素。如果没有,则向当前聚焦的元素发送一个键
# 只能与修饰键(Control、Alt 和 Shift)一起使用
# 构造ActionChains对象:ActionChains(driver) 
# perform()执行所有存储的操作
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
 
sleep(5)
 
driver.quit()
### Java Selenium 模拟键盘操作 在自动化测试中,模拟键盘操作是一项常见的需求。通过 `Selenium WebDriver` 和 `Keys` 类可以轻松实现这一功能。 #### 使用 sendKeys 方法发送文本 当目标是向网页元素输入字符串时,可以直接调用 `sendKeys()` 方法传递字符序列作为参数[^2]: ```java // 定位到搜索框并输入查询词百度一下 driver.get("https://www.baidu.com"); WebElement inputBox = driver.findElement(By.name("wd")); inputBox.sendKeys("Selenium 测试"); ``` #### 结合 Keys 枚举常量执行组合键动作 为了触发特殊按键(比如回车、删除等),应该引入 `org.openqa.selenium.Keys` 来辅助完成更复杂的交互逻辑: ```java import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; public class KeyBoardOperationExample { public static void main(String[] args){ // 初始化浏览器驱动实例... WebElement searchField = driver.findElement(By.id("searchInput")); // 输入关键词后按Enter提交表单 searchField.sendKeys("webdriver", Keys.RETURN); // 或者单独按下某个功能键 searchField.sendKeys(Keys.CONTROL, "a"); // 全选 // 清除当前选定的内容 searchField.sendKeys(Keys.DELETE); } } ``` 上述例子展示了如何利用 `Keys` 对象表示各种标准及修饰符类型的按键,并将其附加于常规字符串之后一并发往指定控件上[^3]。 #### 执行一系列连续的按键行为 如果需要描述多步连贯的操作流程,则可通过构建包含多个指令的动作链来达成目的: ```java Actions builder = new Actions(driver); builder.keyDown(inputElement, Keys.SHIFT).perform(); // 按下Shift不释放 inputElement.sendKeys("HELLO WORLD!"); // 大写打字 builder.keyUp(inputElement, Keys.SHIFT).perform(); // 抬起Shift键 ``` 这里借助了 `Actions` API 提供的功能,允许编程人员定义更加精细的行为模式,从而更好地模仿真实用户的活动方式[^1].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值