分享

selenium---解决clear方法失效

 小世界的野孩子 2022-09-02 发布于北京

  在做自动化过程中会遇到各种各样的奇葩问题,遇到这种问题不要着急,仔细想下操作过程看看是否有其他的办法解决。今天介绍大家经常遇到的问题clear方法失效

clear方法失效

所谓的clear的方法失效比如:明明已经定位到了输入框,输入内容,使用了clear操作方法,但是没有生效,内容还在。这个时候就要尝试下如何使用其他的方法进行操作了。

理清思路:

我们先想象下如果,键盘上的删除键坏掉了,你输入了内容如何进行删除呢,如何借助selenium来清除呢?(这里clear已经不能用了)

1、全选然后进行重新输入内容

2、刷新页面,重新输入内容

3、通过js语法强制清除,重新输入内容

4、双击进行选中输入内容

先想到了这几种方法,我们就通过这几种方法进行用代码进行实现

全选并重新输入

在selenium中选中肯定需要运行用到键盘操作了,使用键盘操作需要导入库 from selenium.webdriver.common.keys import Keys 然后在选中需要选中的输入框,输入“ctrl+a”进行实现,这里我们拿百度进行实战

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('测试-安静')
# 导入“ctrl + a”全选。
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
time.sleep(2)
# 重新输入
driver.find_element_by_id('kw').send_keys('请关注测试安静公众号!')

刷新页面,重新输入内容

首先提一点,这个在一些场景下可能比较麻烦,因为比如在操作输入框之前已经在这个页面进行了其他的输入或者其他的操作,那么这个时候在刷新浏览器就会导致其他的操作也没了,需要重新操作,比较费时,但是也是不错的结局方法

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('测试-安静')
# 刷新页面
driver.refresh()
time.sleep(2)
# 重新输入
driver.find_element_by_id('kw').send_keys('请关注测试安静公众号!')

js语法强制清除,重新输入内容

js脚本虽然测试时候用的比较少,但是用到的时候就是帮助我们解决问题的时候。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('测试-安静')
time.sleep(1)
# 通过js语法强制清除
js = 'document.querySelector("#kw").value="";'
driver.execute_script(js)
time.sleep(2)
# 重新输入
driver.find_element_by_id('kw').send_keys('请关注测试安静公众号!')

双击进行选中输入内容

通过双击选中输入内容,这个有一些场景也不适用,比如中间有标点符号,或者说有一些双击未能选中的词语,说道双击,就要引入鼠标方法 from selenium.webdriver.common.action_chains import ActionChains 

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('测试-安静')
time.sleep(1)
element = driver.find_element_by_id('kw')
# 进行双击
ActionChains(driver).double_click(element).perform()
time.sleep(2)
# 重新输入
driver.find_element_by_id('kw').send_keys('请关注测试安静公众号!')

通过安静执行的代码动图可以发现,双击后,选定了一个词,但是没有全部选中。所以这种方法可能需要在特定的场景下进行使用了。

 

安静通过小的几个例子解决了clear失效的问题,当然如果你有更好的解决方法,可以进行下方留言,共同学习

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多