selenium clear()无效的解决办法

这篇具有很好参考价值的文章主要介绍了selenium clear()无效的解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

做自动化时,在往输入框中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里有镜像节点,清空了输入框中的内容,但是镜像节点里还有数据,所以仍会显示,类似这样:

python 解决selenium 中的 .clear()方法失效,自动化测试,selenium,测试工具

也有的说是因为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,直接只全选即可。文章来源地址https://www.toymoban.com/news/detail-774922.html

到了这里,关于selenium clear()无效的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium ctrl+F5 强行硬刷新无效,解决彻底刷新方法!

       理论上这段代码,可以硬刷新,但是实际执行却无效,这应该是chromedriver的问题 3249 - chromedriver - WebDriver for Google Chrome - Monorail https://bugs.chromium.org/p/chromedriver/issues/detail?id=3249   可以使用间接方法强行刷新,这条命令可以忽略缓存刷新 Python selenium send keys to driver - Stack

    2024年02月07日
    浏览(24)
  • toastr js clear 不成功的一个原因和解决办法

    在系统里使用了 toastr js 即时弹出后台通知。toastr 支持先后显示多个弹出消息,这点很好。然后我又加了自定义样式,使得消息通知更好看些。 我的想法是通知消息显示一段时间后关闭;也可点击关闭按钮,关闭通知并标记已读;或者点击通知消息中的链接查看通知相关的内

    2024年02月17日
    浏览(34)
  • 关于最近VSCode的Python代码格式化失效问题的解决办法

    隔了一段时间再次打开VSCode写Python脚本,Python扩展弹出一条警告 查看日志输出发现Python的代码格式化设置发生了变化 简单来说就是Python扩展已经将原有的默认代码格式化工具 \\\"ms-python.python\\\" 弃用,格式化功能已移交到单独的格式化工具扩展。所有以 \\\"python.linting\\\" 开头的设置都

    2024年02月20日
    浏览(48)
  • selenium+python:clear不生效时,处理清空input框内容

    做selenium自动化时,有时想清楚input框内的内容,但是使用clear却不生效,可以采用其他思路代替clear,就是使用键盘输入ctrl+a,再delete,这样就可以了

    2024年02月05日
    浏览(29)
  • 解决Python爬虫中selenium模块中的find_element_by_id方法无法使用

    如有错误,敬请谅解! 此文章仅为本人学习笔记,仅供参考,如有冒犯,请联系作者删除!!         我们在学习selenium模块的时候,经常会用到 browser.find_element_by_id命令,但随着selenuim版本更新,我们会发现运行时会报错,非常苦恼。         示例:         错误如下:

    2024年02月05日
    浏览(42)
  • nginx设置add_header失效 配置cors跨域失效无效的解决方案

    希望对大家有帮助,有用的话记得点个赞评个论,让俺知道这个法子可以帮助到大家哟!(虽然我这个法子很野) 最近在完成一个项目,后端API地址和前端地址不一致,这就涉及到了跨域的问题。 由于服务端加了一层Nginx作为反代,所以很自然的想到要去 .conf 配置文件中 加

    2024年02月12日
    浏览(40)
  • 【vue项目部署CSS失效】VUE部署后css样式加载无效和失效多种情况解决方案

    【写在前面】vue3在vscode运行正常、build后在IDEA运行正常,但是当部署在服务器上运行发现样式加载不出来,下面我们针对这些情况进行复现与解决。 困扰我好久,当即百度原因,百度清一色下面三种情况: 1、nginx配置文件的问题 2、控制台样式404,文件没找到【文件路径错

    2023年04月09日
    浏览(35)
  • VMware虚拟机中的Linux重启后共享文件夹失效的解决方法

    重启虚拟机之后,发现在共享路径没有显示我的共享文件夹了。         我发现我虚拟机设置的共享文件夹总是启用的,为什么每次重启之后都找不到了呢?这就很奇怪 发现用命令检查共享文件夹是有被挂载的。  三、修改/etc/rc.local文件 如果/etc/rc.local是空文件就添加如下

    2024年02月10日
    浏览(40)
  • Python爬虫selenium安装谷歌驱动解决办法

    1.驱动下载链接:CNPM Binaries Mirror (npmmirror.com) 2.如果找不到匹配浏览器最新版本的驱动,选择进入到:Chrome for Testing availability (googlechromelabs.github.io) 3.谷歌浏览器老版本下载:Google Chrome 64bit Windows版_chrome浏览器,chrome插件,谷歌浏览器下载,谈笑有鸿儒 (chromedownloads.net) 4.谷歌浏览

    2024年02月07日
    浏览(35)
  • 微信小程序uni-app uni-date-picker中的maskClick无效解决方法

    前段时间做小程序 我在调用uni-date-picker组件时候需要@maskClick方法  谁知道竟然无效,上网一查,看到也有其他小伙伴反应类似的问题,我就看了看源码,最终调成功了,记录一下,防止自己忘记。 ps:如果能帮助到大家,那就更开心了。 话不多说,进入正题: 调用uni-dateti

    2024年02月14日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包