谈谈selenium中的clear后输入内容异常的处理|环球看点
代码
from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://124.223.31.21:9097/#/")driver.find_element("id", "formLabelAlign.username").send_keys("20154084")driver.find_element("id", "formLabelAlign.password").send_keys("123456")driver.find_element("css selector", ".submit>button").click()
你会发现无法登录,道理很简单
(资料图)
你输入的密码追加过去了,send_keys如果之前有内容,是会保留的,追加你输入的内容。
你可能会这样处理,在密码元素上先清空之前的内容(clear),然后再去输入
driver.find_element("id", "formLabelAlign.username").send_keys("20154084")driver.find_element("id", "formLabelAlign.password").clear()driver.find_element("id", "formLabelAlign.password").send_keys("123456")
一个奇怪的现象发生了,你是清空了之前的内容,但你输入的是12345,6没了!
屡试不爽但如果输入12345678,或者helloworld,缺又是可以的,我反正是解释不了当然这不是我们的重点。实际工作中我也遇到过,有同学也遇到过类似的情况我们可以用其他等价的手段来替代这个清空后输入
的行为解决方法一:键盘操作在密码上按CTRL+A,再输入
示例代码
driver.find_element("id", "formLabelAlign.password").send_keys(Keys.CONTROL,"A")driver.find_element("id", "formLabelAlign.password").send_keys("123456")driver.find_element("css selector", ".submit>button").click()
从运行的效果看,是全选了,但依然输入的是12345(至此我非常怀疑是send_keys的问题)
解决方法二:鼠标操作在元素上双击(相当于是全选的操作)
然后再输入
示例代码
ele_password = driver.find_element("id", "formLabelAlign.password")ActionChains(driver).double_click(ele_password).send_keys("123456").perform()
效果OK
这样也是ok的
ele_password = driver.find_element("id", "formLabelAlign.password")ActionChains(driver).double_click(ele_password).send_keys_to_element(ele_password,"123456").perform()
对于这个case,既然怀疑是send_keys的问题,那我们完全可以用其他方式来输入内容
比如这样
ele_password = driver.find_element("id", "formLabelAlign.password")ele_password.clear()ActionChains(driver).send_keys_to_element(ele_password,"123456").perform()
即保留了clear,但用其他方式来输入内容
解决方法三:第三方库来输入可以键盘输入的库就多了
比如pyautogui
示例代码
from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://124.223.31.21:9097/#/")driver.find_element("id", "formLabelAlign.username").send_keys("20154084")ele_password = driver.find_element("id", "formLabelAlign.password")ele_password.clear()import pyautoguipyautogui.typewrite("123456")driver.find_element("css selector", ".submit>button").click()
的确搞定了
但有点奇怪的是
我加了sleep,并没有看到在密码框中有输入123456
画蛇添足
ele_password.clear()ele_password.click()import pyautoguipyautogui.typewrite("123456")
click的效果是有的,但是,又只输入了12345
至此有点懵,不是send_keys的原因?还是说send_keys跟typewrite有一样的问题?
解决方法四:js操作js操作就比较丝滑,因为它可以对一个元素的value进行赋值,不存在什么clear
示例代码
from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://124.223.31.21:9097/#/")driver.find_element("id", "formLabelAlign.username").send_keys("20154084")js = "document.querySelector("[placeholder=请输入密码]").value="123456""driver.execute_script(js)driver.find_element("css selector", ".submit>button").click()
说在最后方法其实很多,你要思考的是如何模拟这个操作上面的未必能解决你的问题,你需要根据实际情况去探索 关键词:
-
谈谈selenium中的clear后输入内容异常的处理|环球看点
2023-04-20 -
乡村振兴丨湖南“电力爱心超市”成激活乡村振兴内生动力“魔法棒”:天天日报
2023-04-20 -
2023上海车展:全新林肯航海家上市 32.88-37.88万元|焦点消息
2023-04-20 -
新希望董秘回复:截止到4月10日,公司股东户数为21.17万户
2023-04-20 -
2023药店行业市场分析报告:药店行业格局较为分散,集中度提升空间大 医保药店的分类分级将越来越明晰|天天看热讯
2023-04-20 -
集团成功中标《中卫市2022年城市体检及城市更新专项规划》项目:今日最新
2023-04-20 -
不要忽视饲用豆粕减量替代
2023-04-20 -
河北武强大力发展特色种植 带动2000余名农民增收
2023-04-20 -
河北大名:“娱乐”减压 轻松迎考 世界新视野
2023-04-20 -
画图省识春风面环佩空归夜月魂手法_画图省识春风面环佩空归夜月魂
2023-04-20 -
平淡而又温暖的十句话_你像天使一样给我幸福|全球视点
2023-04-20 -
安徽宿州杂技演员坠亡事件追踪
2023-04-20 -
今年兰州市事业单位公开招聘笔试4月22日举行
2023-04-20 -
土耳其内政部长:美国继续失去声誉,全球多地厌恶美国
2023-04-20 -
【报资讯】酒店散客促销方案_什么是散客
2023-04-20 -
正定机场离高铁站有多远?_正定机场高铁站离机场多远
2023-04-20 -
小米大师Mini LED 86英寸4K144Hz电视与70W扬声器发布 每日看点
2023-04-20 -
每日看点!桐梓赵统村钓鱼 赵统详细内容越多越好
2023-04-19 -
四年级上册奥数题50道及答案_四年级上册奥数题50道
2023-04-19 -
天天时讯:爱康科技(002610.SZ):公司湖州基地的第三条异质结电池生产设备已于2023年4月15日开始进场吊装
2023-04-19 -
键盘打不出字怎么回事(电脑键盘打不出字和键盘保养小常识)
2023-04-19 -
杭州阿波罗医院全称是什么-当前播报
2023-04-19 -
【聚看点】国家发改委:生猪价格进一步明显下跌的可能性较小
2023-04-19 -
芝加哥一男子5个月内洗劫同家商店11次 面临12项盗窃重罪 每日播报
2023-04-19 -
环球热点!超第二代骁龙8跑分136万+ vivo天玑9200+机型曝光GPU性能提升明显
2023-04-19 -
今日黄金td开盘价格(2023年4月19日)
2023-04-19 -
焦点资讯:哈市这些老旧小区改造拟5月开工,涉及这些项目↘
2023-04-19 -
北京丰台:已成立群众工作组,患者家属已全部对接
2023-04-19 -
世界百事通!4月19日 13:20分 金花股份(600080)股价快速拉升
2023-04-19 -
西安“一带一路”人才战略研究院成立-当前报道
2023-04-19
-
守住网络直播的伦理底线
2021-12-16 -
石窟寺文化需要基于保护的“新开发”
2021-12-16 -
电影工作者不能远离生活
2021-12-16 -
提升隧道安全管控能力 智慧高速让司乘安心
2021-12-16 -
人民财评:提升消费体验,服务同样重要
2021-12-16 -
卫冕?突破?旗手?——武大靖留给北京冬奥会三大悬念
2021-12-16 -
新能源车险专属条款出台“三电”系统、起火燃烧等都可保
2021-12-16 -
美术作品中的党史 | 第97集《窗外》
2021-12-16 -
基金销售业务违规!浦发银行厦门分行等被厦门证监局责令改正
2021-12-16 -
保持稳定发展有支撑——从11月“成绩单”看中国经济走势
2021-12-16