selenium clear()无效的解决办法

news2024/10/5 15:36:03

做自动化时,在往输入框中send_keys前往往需要先清空一下这个输入框里的内容,避免输入框原本有内容或默认值,导致最终输入的结果不是预期的内容。

清空内容我们一般会用clear()方法

import time
from selenium import webdriver


driver = webdriver.Chrome()

driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('输入的内容')
time.sleep(2)
driver.find_element_by_id('kw').clear()

但用久了你就会发现clear()并非对所有的输入框都好用,即使它是一个input元素。

产生这个问题的原因有的说是DOM里有镜像节点,清空了输入框中的内容,但是镜像节点里还有数据,所以仍会显示,类似这样:

也有的说是因为clear()本身是只对form中的表单元素有效。

这里不探究到底为什么clear()会无效,只写几种能达到clear效果的方法。

方法一:模拟键盘的清空操作

全选+删除是个比较好的选择

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


driver = webdriver.Chrome()

driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('输入的内容')
time.sleep(2)
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
driver.find_element_by_id('kw').send_keys(Keys.DELETE)

也可以用双击+删除,但是要注意双击也是为了能选中内容,但有时候双击不能达到全选的效果

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Chrome()

driver.get('https://www.baidu.com')
element = driver.find_element_by_id('kw')
element.send_keys('输入的内容')
time.sleep(2)
ActionChains(driver).double_click(element).perform()
element.send_keys(Keys.DELETE)

方式二:使用JS进行清空操作

import time
from selenium import webdriver


driver = webdriver.Chrome()

driver.get('https://www.baidu.com')
element = driver.find_element_by_id('kw')
element.send_keys('输入的内容')
time.sleep(2)
driver.execute_script('arguments[0].value="";', element)

使用JS直接改变元素属性值也能达到效果,但是适用性不如全选+删除。如果后面还要send_keys,直接只全选即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用Python操作Excel文件?看这篇博客就够了!

前言 如何使用Python操作Excel文件?看这篇博客就够了! 在工作中,我们经常需要处理和分析数据。而Excel作为一种广泛使用的数据分析工具,被很多人所熟知。但是,对于一些非技术背景的用户来说,如何操作Exce…

自学网络安全,一般人我劝你还是算了吧

学前感言: 我为什么会这样说,要一般人自学网络安全就算了,因为我不是一般人 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发 .3.有时多 google,baidu,我们往往…

自学网络安全(黑客)?一般人我劝你还是算了吧!

一、自学网络安全学习的误区和陷阱 1.不要试图以编程为基础的学习开始学习 我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多 …

IMX6ULL裸机篇之IIC协议

一. IIC实验简介 I2C 是最常用的通信接口,众多的传感器都会提供 I2C 接口来和主控相连。 比如摄像头、 加速度计、触摸屏等。 I.MX6U-ALPHA开发板 使用 I2C1 接口连接了一个距离传感器 AP3216C ,本章我们就来学习如何使用 I.MX6U 的 I2C 接口…

“开启科技之门,每日工作充满力量” —— 全国科技者工作日

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

科技创新—人工智能应用技术的出现

科技创新—人工智能应用技术的出现 人工智能(Artificial Intelligence,AI)研究目的是通过探索智慧的实质,扩展人类智能——促使智能主体会听(语音识别、机器翻译等)、会看(图像识别、文字识别等…

深入解析CPU性能火焰图生成的内部原理

在进行CPU性能优化的时候,我们经常先需要分析出来我们的应用程序中的CPU资源在哪些函数中使用的比较多,这样才能高效地优化。一个非常好的分析工具就是《性能之巅》作者 Brendan Gregg 发明的火焰图。 我们今天就来介绍下火焰图的使用方法,以…

这三款识别图片手写文字的软件超好用

在过去,我们需要通过扫描或者人工录入的方式将手写文字数字化,这样操作不仅繁琐而且容易出错。而随着人工智能技术的发展,我们现在可以通过图片识别技术将手写文字自动识别为数字形态,从而实现自动化的信息处理和提取。这项技术可…

【C语言】经典题目(二)

C站的小伙伴们,大家好呀^^! 这一篇文章是C语言之经典题目,快来跟我一起进入C语言的世界吧!💞 C语言其他刷题篇在这里哦: 【C】语言经典题目(一) 【C语言】字符串—刷题篇 【C语言】经典题目二 求…

java.time包使用指南

目录 前言一、时区与时间1. 世界标准时:UTC、GMT、UT2. 地区时:Asia/Shanghai、UTC83. 时区:ZoneId、TimeZone4. 时间偏移量:ZoneOffset5. 时区简称:CTT、PRC 二、主要时间类1. 重要时间接口:Temporal2. 时…

Uni-app学习从0到1开发一个app——(1)初步了解各种小程序开发框架

文章目录 0 引入1、小程序常用框架1.1、 mpvue1.2、 mpvue1.3、 Tina.js1.4、 WePY1.5 微信官方1.6 TouchUI WX 2、uin-app3、引用 0 引入 uin-app官网地址:https://uniapp.dcloud.net.cn/ 最近对于小程序莫名的感兴趣起来,索性就从uni-app开始吧 1、小…

spring boot使用elasticsearch分词,排序,分页,高亮简单示例

目录 1. 创建ES实体2. 创建查询实体3. 查询方法实现3.1 核心代码3.2 构建查询条件3.2.1 关键词分词 3.3 高亮处理 4.完整查询代码展示 记,写一个简单的es分词demo,es版本6.8.12 如果使用es7有些方法可能会有所改变,请参考7的文档 es安装教程:…

PMP-识别相关方的重要性

一、为什么要识别相关方 每个项目都有相关方,他们会受项目的积极或消极影响,或者能对项目施加积极或消极的影响。有些相关方影响项目工作或成果的能力有限,而有些相关方可能对项目及其期望成果有重大影响。项目经理和团队正确识别并合理引导所…

Apache的日志分割

一、日志分割的作用 我们知道当服务安装完成以后,都会在相关服务下有一个logs文件里面有着访问日志和错误日志。访问日志可以帮我们记录访问者的信息,错误日志一般在服务搭建,服务配置,启动时能够快速寻找错误原因的日志&#xf…

堆的应用(堆排序、TOP - K问题)

前言 🍎 时间复杂度: 🥝 堆排序的最坏时间复杂度为 :O(n*lg(n)) 🥝 TOP - K问题的最坏时间复杂度为:O(n*lg(k)) 🍁前面我们学习了二叉树、以及堆的结构,也用顺序表的结构成功的把堆的…

【uni-app】使用外部组件不显示报错组件未找到解决方案

文章目录 前言一、问题描述二、温馨提示总结 前言 大家好,今天和大家分享一下uni-app使用外部组件不显示报错的一个解决方案,希望能够帮助到大家。 一、问题描述 我在使用uni-app在开发项目时引入了一个外部的组件库,刚开始引入的时候还是…

【复习笔记】FreeRTOS(二)创建和删除任务

本文是FreeRTOS复习笔记的第二节,创建和删除任务,使用的开发板是stm32f407VET6,创建两个任务,task1负责闪烁LED,task2负责按键控制,当按键按下时task1停止执行,任务的状态显示到TFT显示屏和串口…

【数据库系统及应用】— 日志、故障恢复、事务、并发控制、调度、检查点

日志文件是用于记录__________。 A、数据操作 B、程序运行过程 C、程序执行结果 D、对数据的所有更新操作 下列说法正确的是__________。 A、事务故障可以通过运行日志进行恢复 B、介质故障只需将备份恢复到系统中即可实现正确性 C、检查点是指检查发生故障并进行恢复的时刻点…

MySQL 对日期使用 DATE_FORMAT()函数

文章目录 DATE_FORMAT()函数显示今天是星期几只显示年月显示当前时间的分钟数和秒数 DATE_FORMAT()函数 前面使用日期时间函数,获取到的要么是 yyyy-mm-dd 形式的日期,要么是 hh:MM:ss 形式的时间,或者是 yyyy-mm-dd hh:mm:ss 形式的日期及时…

论文解读 | ICRA2022:用深度贝叶斯算法来估计ICP的协方差

原创 | 文 BFT机器人 01 研究背景 在点云处理中,ICP算法是一种常用的点云配准方法,通过将两个或多个点云对齐,可以进行后续的建模、识别和跟踪等处理。 然而,在ICP算法中,协方差估计起着非常重要的作用,它…