Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium和Python向文本字段发送删除击键?_Python_Selenium_Selenium Webdriver - Fatal编程技术网

如何使用Selenium和Python向文本字段发送删除击键?

如何使用Selenium和Python向文本字段发送删除击键?,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,如何使用Selenium web tester将Keys.DELETE击键发送到文本字段?我试图模拟用户在字段中键入内容,然后删除他们键入的内容,以测试交互式自动建议功能。它应该过滤列表中以查询开头的项目,然后在删除查询时再次显示所有可能的建议。不幸的是,发送.clear()无法再次取消筛选列表。也不发送_键('\127') 如何模拟用户按下键盘上的删除按钮?您需要使用键。BACKSPACE而不是键。如果要删除光标前的字符,请删除键。删除用于删除光标后的字符 确保您正在使用以下导入: from

如何使用Selenium web tester将Keys.DELETE击键发送到文本字段?我试图模拟用户在字段中键入内容,然后删除他们键入的内容,以测试交互式自动建议功能。它应该过滤列表中以查询开头的项目,然后在删除查询时再次显示所有可能的建议。不幸的是,发送.clear()无法再次取消筛选列表。也不发送_键('\127')


如何模拟用户按下键盘上的删除按钮?

您需要使用
键。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)