0


selenium的clear()失效的问题

在我绑定一个ID后,输入第一个数据,clear()清空后,在输入第二个,但是clear始终失效。
在百般查询后,看到这个博客

如果元素定位到了,但是clear没有效果,根本原因是:存在镜像节点. 操作clear()清掉数据后,
镜像节点的数据还在,所以数据会补充回去

觉得很有道理,应该clear并没有清除本地浏览器上面input输入的数据,它仍然保存在浏览器上面。

另外一个说法:

clear()方法注释: /**

  • If this element is a form entry element, this will reset its value.
  • See W3C WebDriver specification
  • and HTML specification
  • for more details.
  • */ void clear(); 所以clear()应该是只对form里的表单元素生效,不是则无效。

最终我是采用了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()
标签: python selenium

本文转载自: https://blog.csdn.net/qq_44267691/article/details/124317192
版权归原作者 sk无法 所有, 如有侵权,请联系我们删除。

“selenium的clear()失效的问题”的评论:

还没有评论