在我绑定一个ID后,输入第一个数据,clear()清空后,在输入第二个,但是clear始终失效。 在百般查询后,看到这个博客
如果元素定位到了,但是clear没有效果,根本原因是:存在镜像节点. 操作clear()清掉数据后, 镜像节点的数据还在,所以数据会补充回去
觉得很有道理,应该clear并没有清除本地浏览器上面input输入的数据,它仍然保存在浏览器上面。
另外一个说法:
clear()方法注释: /**
最终我是采用了ctrl+A全选的办法解决的。 代码如下:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
##webdriver 对象选择的元素是整个页面,而webrlrment对象选择的元素的范围是该元素的内部
##webdriver对象有个implicitly_wait,称之为隐式等待或全局等待,该方法接受一个参数,用来指定最大时长
wd=webdriver.Chrome() #将chromedriver.exe的目录放在环境变量中,即可不用调用service,直接调用浏览器
wd.get('https://www.baidu.com')
element=wd.find_element(By.ID,'kw') #找到input标签的的ID
element.send_keys('大树\n') #输入字符,\n回车键进行搜索
time.sleep(1)
#element.clear() #clear()方法不起作用,注释掉
element.send_keys(Keys.CONTROL, 'a') #通过全选上一个数据,再进行更改
element=wd.find_element(By.ID,'kw') #找到input标签的的ID
element.send_keys('花朵\n')
input()
|