• 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']")
    
    • 1
    • 2
    • 3
    • 4

    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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    输出:

    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    第一步:

    Selenium send_keys() - 示例 2 第一步

    第二步:

    Selenium send_keys() - 示例 2 第二步

    第三步:

    Selenium send_keys() - 示例 2 第三步

    故障排除问题:

    1. 我们应该确保所选元素来自键盘输入。
    2. 元素的识别应给出适当的参考,以避免复杂化。
    3. 始终遵循正确的方法:搜索元素,单击元素,然后发送密钥。
    4. 当元素不活动或超出范围时,send_keys() 可能会失败。 确保在处理特定元素时计算这些因素。
  • 相关阅读:
    Amazon云计算AWS之[2]弹性计算云EC2
    ElasticSearch之ES8新特性及集群安装
    消息队列实现进程之间通信方式
    Deep Graph-level Anomaly Detection by Glocal Knowledge Distillation
    Android12 展锐sl8541平台USB转串口(pl2303、ch343)以及APP访问权限
    【Linux】Linux进程间通信(二)
    Vue3【Composition API 的优势、新的组件(Fragment、Teleport、Suspense)、全局API的转移】
    从实战出发带你搞懂AXI4 (一、AXI4协议解析)
    多目标应用:基于非支配排序粒子群优化算法NSPSO求解无人机三维路径规划(MATLAB代码)
    ssm学生成绩管理
  • 原文地址:https://blog.csdn.net/fengqianlang/article/details/134241716