天天看点

Selenium防踩坑 - clear()失效 解决方案问题描述解决方案示例代码

主要内容

  • 问题描述
  • 解决方案
    • 通过全选的方法清除数据
    • 通过执行js的方法清除数据
  • 示例代码

问题描述

     使用clear()方法没反应。或者清除了文本,然后在执行输入命令时,前面清除的文本又会出现。

解决方案

通过全选的方法清除数据

element.send_keys(Keys.CONTROL, "a")
element.send_keys(Keys.BACKSPACE)
           

通过执行js的方法清除数据

js = 'document.querySelector("#kw").value="";'
driver.execute_script(js)
           

示例代码

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)

driver.get("http://www.baidu.com/")
element = driver.find_element_by_id("kw")
element.send_keys("开始演示通过 Ctrl+A -> Backspace 的方法清掉数据")
time.sleep(1)

# 通过全选( Ctrl+A -> Backspace )的方法
element.send_keys(Keys.CONTROL, "a")
element.send_keys(Keys.BACKSPACE)
time.sleep(1)
element.send_keys("接下来演示通过 js 的方法清掉数据")
time.sleep(1)

# 通过 js 的方法
js = 'document.querySelector("#kw").value="";'
driver.execute_script(js)
time.sleep(2)

driver.quit()
           
Selenium防踩坑 - clear()失效 解决方案问题描述解决方案示例代码
Selenium防踩坑 - clear()失效 解决方案问题描述解决方案示例代码