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() 可能会失败。 确保在处理特定元素时计算这些因素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/701466.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新书速览|Autodesk Inventor 2024入门与案例实战:视频教学版

《Autodesk Inventor 2024入门与案例实战:视频教学版》 本书内容 《Autodesk Inventor 2024入门与案例实战:视频教学版》以Autodesk Inventor 2024为平台,重点介绍Autodesk Inventor 2024中文版的各种操作方法及其在工程设计领域的应用。《Au…

企业光纤专线和家用的区别

企业光纤专线与家用宽带之间的主要区别在于服务对象、技术特性、性能、成本以及服务等级。以下是一些关键差异: 服务对象: 企业光纤专线:专门为企业用户设计,通常需要提供营业执照作为申请条件,适用于需要稳定、高速和…

计算机组成原理之运算方法和运算器

文章目录 数据与文字的表示方法定点表示法机器码(机器数)原码 反码补码移码 浮点表示法尾数规格化 数据与文字的表示方法 定点表示法 机器码(机器数) 正数的原码、反码、补码一样,负数的原码、反码、补码的符号位均为…

Surface安装Windows和Ubuntu双系统方法(包括Ubuntu适配触控屏的方法)

这是一个目录0.0 前言让我们从一块砖头开始现在你有了能进入windows系统的surface并且想安装Ubuntu现在Ubuntu也有了再见 前言 之前我的Surface装上Ubuntu了好好的,能用,但是Ubuntu原本的内核是不支持很多Surface的功能的,比如触控屏&#xf…

SpringCloudAlibaba组件集成

SpringCloudAlibaba组件集成 Nacos服务注册与发现 1.Nacos认识与安装 1.1.什么是Nacos Nacos和Eureka有着相同的能力,甚至更为强大,作为Dubbo 生态系统中重要的注册中心实现。官方对它有如下定义: Nacos致力于帮助您发现,配置…

AI产品经理还不会数据挖掘❓看完这篇就够了

前言 在数字化时代的浪潮中,AI产品经理正成为推动科技与商业融合的重要力量。然而,面对海量的数据,如何从中挖掘出有价值的信息,为AI产品的开发提供有力支持?这已成为AI产品经理必须面对的挑战。今天,我们…

文心一言 VS 讯飞星火 VS chatgpt (279)-- 算法导论20.3 6题

六、创建一个全域大小为 u 的 vEB 树,需要 O(u) 的运行时间。假设我们想得到确切时间。如果 vEB 树中每个操作的摊还时间为 〇(lglgu),那么最小的操作数 n 是多少?如果要写代码,请用go语言。 文心一言: 首先&#xf…

iOS、Android、PC 、NAS、docker最近值得下载的5个工具

iOS & Android 1、timeto.me:在线时间管理与 productivity 工具 帮助用户提高工作效率,特别是对于需要跟踪任务耗时或是想要实施番茄工作法的人来说非常有用。该工具通常允许用户创建任务列表,并使用计时器来监控完成每个任务所花费的时…

MT2096 数列分段

代码&#xff1a; #include <bits/stdc.h> using namespace std; const int N 1e5 10; int n, m; int a[N]; int ans 1; int main() {cin >> n >> m;for (int i 1; i < n; i)cin >> a[i];int num 0;for (int i 1; i < n; i){if (num a[i…

css实现多行文本的展开收起

背景 在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景&#xff1a; 那么&#xff0c;如何通过纯css实现这样的效果呢&#xff1f; 实现的难点 &#xff08;1&#xff09;位于多行文本右下角的 展开收起按钮。 &#xff08;2&#xff09;展开和收起两种状态的…

第二证券:美国大消息!苹果涨疯了,市值暴增1.56万亿!

一则重磅利好引爆苹果股价。 隔夜美股&#xff0c;苹果公司股价暴升&#xff0c;大幅收涨7.26%&#xff0c;创2022年11月10日以来最大涨幅&#xff0c;股价创出历史收盘新高&#xff0c;市值已反超英伟达。到收盘&#xff0c;苹果总市值升至3.18万亿美元&#xff08;约合人民币…

【ARM】MDK如何进入\退出debug模式时断点不会消失

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 在对于工程进行调试的情况下&#xff0c;退出debug模式后再次进入&#xff0c;之前设置的断点不会消失。 2、 问题场景 在对于工程进行调试的时候&#xff0c;通常是通过设置断点的方式对于语句进行检测&#xff0…

Vue + Asp.NET调试时出现的证书问题 (OpenSSL)

Vue Asp.NET调试时出现的证书问题 1. 证书过期问题步骤一:创建新的私钥步骤 2: 创建新的证书签名请求&#xff08;CSR&#xff09;步骤 3: 使用 CSR 和 CA 私钥签署新证书步骤 4: 替换或使用新证书 2. 证书不受信任问题步骤: 3. 安全证书不指定使用者可选名称步骤一: 删除已生…

Java多线程CompletableFuture使用

引言 一个接口可能需要调用N个其他服务的接口&#xff0c;这在项目开发中非常常见。如果是串行执行的话&#xff0c;接口的响应速度会很慢。考虑到这些接口之间有大部分都是无前后顺序关联的&#xff0c;可以并行执行。就比如说调用获取商品详情的时候&#xff0c;可以同时调用…

嵌入式单片机中项目在线仿真工具分享

前段时间,无意间发现了一个不错的在线仿真工具(Wokwi),支持多种平台,支持市面上主流的开发板,比如:STM32、ESP32、Arduino、树莓派等。 还支持常见的传感器、显示器件(LCD、LED屏幕)等,还可以播放音乐、联网、逻辑分析仪等,关键还提供了很多实际项目的案例。 这款工…

Offline :Adversarially Trained Actor Critic for Offline Reinforcement Learning

ICML 2022 paper code 基于Stackelberg游戏博弈形式&#xff0c;对抗的学习actor与critic Intro Method 将离线RL的Stackelberg博弈表述为一个双层优化问题&#xff0c;学习者策略π∈Π为领导者&#xff0c;批评家f∈F为跟随者: π ^ ∗ ∈ argmax ⁡ π ∈ I I L μ ( π…

Pixi.js学习 (六)数组

目录 前言 一、数组 1.1 定义数组 1.2 数组存取与删除 1.3 使用数组统一操作敌机 二、实战 例题一&#xff1a;使用数组统一操作敌机 例题一代码&#xff1a; 总结 前言 为了提高作者的代码编辑水品&#xff0c;作者在使用博客的时候使用的集成工具为 HBuilderX。 下文所有截…

echarts学习:调色盘

前言 在之前的几篇文章中&#xff0c;我试图复现下面的这张图表。 目前复现的效果如下&#xff1a; 今天我想要实现的效果是让y轴与对应的折线显示同样的颜色。 1.调色盘介绍 我早就听说echarts存在一个调色盘的概念&#xff0c;如今终于是好好的了解了一下。调色盘就是配置项…

JAVA反编译工具-CFR(class单个反编译、JAR包整体反编译)

环境说明 1、win10 2、JAVA8&#xff08;环境变量要配置好&#xff09; 3、cfr版本&#xff1a;C:\Users(xx)当前用户\cfr-0.152.jar 4、命令行操作路径&#xff1a;C:\Users(xx)当前用户 5、示例反编译jar包&#xff1a;C:\Users(xx)当前用户\ruoyi-admin.jar CFR工具相关参…