Python 中 Selenium 的 send_keys() 函数

我们将介绍 Selenium Python 中的 send_keys() 函数并演示其用法。

任何应用程序在进入市场之前都需要经过一些测试。 应用程序应首先满足与其名称相关的所有要求。

我们应该全面测试应用程序,因为没有人能够预测给予应用程序的确切输入。 Python Selenium 可以帮助我们测试所有可能的原因。

send_keys() 是将数字、文本和符号等键盘输入发送到应用程序的文本框的过程。 send_keys() 是 WebDriver 的一部分,每个键盘输入都会发送到此元素。


Selenium Python 中的 send_keys() 函数

此方法涉及的第一步是打开我们要测试的 Web 应用程序。 我们可以使用其 URL 打开该应用程序。

等待整个页面加载成功,如果应用程序是动态类型,但测试时网页未完全加载,则测试失败。

下一步涉及选择和搜索发送到键盘输入的所需元素。 该元素通常是一个文本框,允许用户在其中书写。

该元素可以是搜索选项卡或某种形式。 我们可以使用多个选项(例如元素 ID、元素名称和 XPath)来查找元素。

选择元素后,使用 send_keys 方法发送键盘输入。 我们可以使用 id、类名或 xpath 来查找元素。

每个方法的语法如下所示。

# python
getElemById = driver.find_element_by_id("myId")
getElemByName = driver.find_element_by_name("myClass")
getElemByXPath = driver.find_element_by_xpath("//input[@id='myId']")

send_keys() 的主要应用是测试应用程序的大量输入。 然而,了解此方法常用的两个输入非常重要。


使用 Selenium Python 中的 send_keys() 函数进行输入验证

大多数应用程序都有一个广泛使用用户电子邮件地址的登录表单。 因为我们都知道每个电子邮件地址都有一个标准模板,以用户名开头,包括符号@,然后是域名。

现在,我们应该添加验证电子邮件地址的过程。

这将不允许用户通过在登录表单中写入无效的电子邮件地址来登录应用程序。 可以通过发送不遵循主模板的输入来添加和检查应用程序来确认验证。

额外的验证也可以参与此过程。 由于登录应用程序的密码具有一组特定的规则,因此可以通过发送不符合规则的输入来检查此验证。

还应检查应用程序中存在的搜索栏。 搜索栏应显示相关结果,以正确引导用户使用所需的搜索元素。

send_keys() 是一个方便的工具,用于检查搜索栏的预期结果。

某些 Web 应用程序包含特殊功能,应在发布应用程序之前对其进行检查。 Google Meet 就是一种特殊功能的示例,它使用 Ctrl+D 将麦克风静音或取消静音。

示例代码:

# python
from selenium import webdriver

Chromedriver = webdriver.Chrome()

Chromedriver.get("https://www.google.com/")

getElemById = Chromedriver.find_element_by_name("gLFyf")

getElemById.send_keys("This is filed by Selenium send keys")

输出:

Selenium send_keys() - 示例 1

从上面的例子可以看出,借助selenium的 send_keys() 方法,我们可以填充任何网站上的任何输入字段。


使用 Selenium Python 中的 send_keys() 函数擦除文本

我们还可以使用相同的 send_keys() 函数编辑和更改键的值。 让我们看一个示例,其中我们将更改输入的值,然后再次更改它。

在此示例中,我们将发送密钥; 休眠 3 秒后,我们将从密钥中删除 3 个字母。 最后,我们再次更改该值,如下所示。

示例代码:

# python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

link = 'https://www.google.com/'

chromeDriver = webdriver.Chrome("C:\chromedriver.exe")

driverOptions = webdriver.ChromeOptions()

windowSize = chromeDriver.get_window_size()

chromeDriver.get(link)

getElemByName = chromeDriver.find_element_by_name('gLFyf')

getElemByName.send_keys('For test purpose')
time.sleep(3)

getElemByName.send_keys(3*Keys.BACKSPACE)

time.sleep(3)

getElemByName.send_keys('testing second key')

time.sleep(3)

getElemByName.clear()

time.sleep(3)

chromeDriver.quit()

第一步:

Selenium send_keys() - 示例 2 第一步

第二步:

Selenium send_keys() - 示例 2 第二步

第三步:

Selenium send_keys() - 示例 2 第三步

故障排除问题:

  1. 我们应该确保所选元素来自键盘输入。
  2. 元素的识别应给出适当的参考,以避免复杂化。
  3. 始终遵循正确的方法:搜索元素,单击元素,然后发送密钥。
  4. 当元素不活动或超出范围时,send_keys() 可能会失败。 确保在处理特定元素时计算这些因素。
### 如何处理未使用的 `import` 语句 在 Python 开发过程中,如果存在未使用的 `import` 语句(例如 `from selenium.webdriver.common.keys import Keys`),可以通过以下方式解决: - **删除未使用的导入**:可以直接手动移除这些未使用的 `import` 语句。IDE 工具如 PyCharm 提供了自动优化导入的功能,在菜单栏中选择 `Code -> Optimize Imports` 即可清理掉多余的导入[^5]。 - **保留必要导入**:某些情况下,虽然 IDE 显示某个模块未被显式调用,但它可能间接影响程序运行逻辑或者用于动态加载功能。因此需确认该导入是否真的无用再决定是否移除。 ### 关于 `Keys` 的作用与用法 `Keys` 是 Selenium 库中的一个重要类,主要用于模拟键盘输入操作。它允许开发者向网页上的元素发送特定键值,比如回车键 (`ENTER`) 或者组合按键 (Ctrl+A, Shift+F10 等)[^2]。以下是几个常见应用场景及其代码示例: #### 发送单个字符或特殊键 可以利用 `send_keys()` 方法配合 `Keys` 来实现各种交互行为。 ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get("http://example.com") element = driver.find_element(By.NAME, 'q') element.send_keys("search term") # 输入字符串 element.send_keys(Keys.RETURN) # 模拟按下 Enter 键提交表单 ``` #### 组合键操作 通过传递多个参数给 `send_keys()` 函数来完成复杂指令序列。 ```python element.send_keys(Keys.CONTROL + 'a') # 全选当前文本框内的内容 element.send_keys(Keys.DELETE) # 删除已选中文本 ``` 以上例子展示了如何借助 `Keys` 类增强自动化测试脚本的能力[^3]。 ### 总结 对于未使用到的 `import` 声明应当审慎对待;既要避免冗余也要确保不会破坏原有业务流程。而 `Keys` 则提供了丰富的接口支持多种类型的用户事件仿真需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迹忆客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值