如何使用Selenium和Python向文本字段发送删除击键?
如何使用Selenium web tester将Keys.DELETE击键发送到文本字段?我试图模拟用户在字段中键入内容,然后删除他们键入的内容,以测试交互式自动建议功能。它应该过滤列表中以查询开头的项目,然后在删除查询时再次显示所有可能的建议。不幸的是,发送.clear()无法再次取消筛选列表。也不发送_键('\127')如何使用Selenium和Python向文本字段发送删除击键?,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,如何使用Selenium web tester将Keys.DELETE击键发送到文本字段?我试图模拟用户在字段中键入内容,然后删除他们键入的内容,以测试交互式自动建议功能。它应该过滤列表中以查询开头的项目,然后在删除查询时再次显示所有可能的建议。不幸的是,发送.clear()无法再次取消筛选列表。也不发送_键('\127') 如何模拟用户按下键盘上的删除按钮?您需要使用键。BACKSPACE而不是键。如果要删除光标前的字符,请删除键。删除用于删除光标后的字符 确保您正在使用以下导入: from
如何模拟用户按下键盘上的删除按钮?您需要使用
键。BACKSPACE
而不是键。如果要删除光标前的字符,请删除<代码>键。删除
用于删除光标后的字符
确保您正在使用以下导入:
from selenium.webdriver.common.keys import Keys
在python中,如果element.clear()(在react中不触发onChange)不起作用,请尝试以下操作
def clear_text(element):
length = len(element.get_attribute('value'))
element.send_keys(length * Keys.BACKSPACE)
您可以使用Ctr+a
突出显示文本,并通过退格将其删除:
from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.CONTROL, 'a')
element.send_keys(Keys.BACKSPACE)
我试图模拟用户在字段中键入,然后删除
他们打了什么
如果您试图一次删除一个键,则如@falsetru所述,使用以下命令将一次删除一个字符:
element = driver.find_element_by_css_selector('#searchQuery')
element.send_keys(Keys.BACKSPACE)
但是,如果要删除整个搜索查询,我宁愿清除输入字段
element = driver.find_element_by_css_selector('#searchQuery')
element.click()
element.clear()
为什么没有人说需要进口
from selenium.webdriver.common.keys import Keys
此外,如果要删除整个文本,可以在单个函数中模拟ctrl+a
&backspace
,如下所示:
def clear_entire_text(element):
element.send_keys(Keys.CONTROL + 'a', Keys.BACKSPACE)
是的,具有讽刺意味的是,我刚刚通过在iPython中看到Keys.BACKSPACE的自动提示列表找到了答案,当时我键入了Keys。现在感觉有点傻。@NickSweeting,也许你在用Mac?Mac电脑中的键盘布局令人困惑;)从selenium.webdriver.common.keys导入密钥
只供任何想知道如何导入密钥的人使用。@jmunsch作为答案添加。我错过了这个评论。
def clear_entire_text(element):
element.send_keys(Keys.CONTROL + 'a', Keys.BACKSPACE)