一、send_keys 简介
send_keys
是 Selenium 的一个重要 API,用于向输入框中输入文本或按键,同时也能够在浏览器内模拟键盘的各种操作,是 Web 自动化测试中经常使用的操作之一。
在 Python 的 Selenium WebDriver 中,send_keys
主要是通过 WebDriver 的一个 find_element_by_*
方法找到需要操作的元素,然后对该元素进行 send_keys
的调用,来进行相应的操作。
二、send_keys 的输入文本
调用 send_keys
可以将字符串作为参数输入到选定的元素中,代码如下:
from selenium import webdriver
browser = webdriver.Chrome() # 初始化浏览器
browser.get('https://www.baidu.com') # 打开百度页面
input_element = browser.find_element_by_id('kw') # 找到输入框
input_element.send_keys('Selenium') # 输入文本
在上述代码中,首先使用 WebDriver 打开了百度页面,然后使用 find_element_by_id
方法找到了百度搜索框元素。接着使用 send_keys
将字符串参数“Selenium”输入到该元素中。当执行完 send_keys
之后,框内就会显示“Selenium”。
三、send_keys 的按键操作
send_keys
不仅能够输入文本,还可以模拟键盘按键操作。对于一些特殊的键盘按键,只需要输入对应的 key 便可以模拟按键操作,更多键盘按键详见 官方文档。例如,按下回车键可以使用如下代码:
from selenium.webdriver.common.keys import Keys # 引入 Keys
# 执行搜索
input_element.send_keys(Keys.RETURN)
由于引入了 Keys
,故可以使用 Keys.RETURN
来模拟按下回车键。
四、send_keys 的多个参数
send_keys()
方法也支持多个参数,此时按照参数顺序逐一输入,例如:
input_element.send_keys('Selenium', Keys.RETURN)
上述代码先输入 "Selenium",再按下回车键。
五、send_keys 的组合按键
send_keys()
方法也支持模拟组合按键操作。例如,按下 Ctrl+C 复制文本内容:
input_element.send_keys(Keys.CONTROL, 'a') # 全选文本
input_element.send_keys(Keys.CONTROL, 'c') # 复制文本
由于使用了 Keys.CONTROL
,同时按下“c”键,即模拟了组合键 Ctrl+C 的作用。
六、send_keys 的中文输入
在使用 send_keys
输入中文时,如果直接输入中文字符会报错,因为 Python 默认使用 ASCII 编码,无法识别中文编码。此时,需要将字符串转化为 Unicode 编码才能正常输入中文。
input_element.send_keys(u'中国')
或者使用字符串前添加 u
将其转化为 Unicode 编码:
input_element.send_keys('中国'.decode('utf8'))
七、小结
以上是关于 send_keys
的基本操作介绍,它是 Selenium WebDriver 中很重要的一个 API,可以输入文本、模拟按键操作、组合按键等,帮助开发人员实现自动化测试的目的。开发人员应该根据需求,结合实际情况,选用合适的方法来进行 Web 自动化测试。