Selenium selenium 如何清除 input 框中的 value 值?

醋精测试媛 · 2020年10月20日 · 最后由 醋精测试媛 回复于 2020年10月21日 · 4400 次阅读


clear() 试过了完全没有反应。后来使用了下面的方法:
username_el = self.find_element(*self.username)
username_el.click()
username_el.send_keys(Keys.CONTROL, 'a')
username_el.send_keys(Keys.BACK_SPACE)
遗憾的是还是没有删除 input 框中的内容,试过 send_keys("")
也尝试了 ActionChains
ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
ActionChains(self.driver).key_down(Keys.DELETE).pause(1).key_up(Keys.DELETE).perform()
仍然无法清空输入框的内容,当我再次 sendkeys 其他值时,是在已有值后面添加
请问有没有办法可以清空输入框中的值呢

共收到 11 条回复 时间 点赞

试下 js 直接把 value 清空?

find_element 是不是不对?或者换个,比如 find_element_by_name,classname、xpath?

self.find_element_by_xpath("//input[@placeholder='请输入用户名']").clear()
好像是这么写吧

IAmTester 回复

可以填值,只是不能清除值

404铁头娃 回复

clear 试过了,不能清除值

Jerry li 回复

我试的是:"arguments[0].value='{val}'"val 直接用新的值代替,但是好像不行,但是对 js 不太了解,不知道有没有更合适的方法

你是要清除 value 值还是 placeholder?可以试下 jQuery,$("input[@placeholder='请输入用户名']").placeholder="",这样就把 placeholder 的值清掉了

清除文本框的内容为什么搞那么多?
self.find_element_by_cssSelector(input[placeholder="请输入用户名"]).clear()

9楼 已删除

因为用 clear 清除不了,当我第一次 send_keys("12") 后 clear 掉,再次 send_keys("123") 时,输入框里面不是"123", 是"12123"

去踢球吧 回复

value。我试试

去踢球吧 回复

不知道这样子对不对, 我试了没有用

pwd_el = driver.find_element(*self.password)# 定位元素
driver.execute_script(f'$({pwd_el}).value=''')
醋精测试媛 关闭了讨论 10月22日 08:58
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册