如何使用Selenium Web测试仪将Keys.DELETE击键发送到文本字段?我正在尝试模拟用户键入字段,然后删除他们键入的内容以测试交互式自动提示功能。它应该将列表过滤到以查询开头的项目,然后在删除查询时再次显示所有可能的建议。发送.clear()的Unfortunatley无法再次取消筛选列表。 send_keys('\'127')也没有。
def get_suggestions():
driver.get('https://www.example.com/')
driver.find_element_by_css_selector('#searchQuery').click()
driver.find_element_by_css_selector('#searchQuery').send_keys('a')
sleep(0.5)
driver.find_element_by_css_selector('#searchQuery').send_keys(Keys.DELETE)
sleep(0.5)
for suggestion in driver.find_elements_by_css_selector('#search-form #suggestions'):
yield suggestion
如何模拟用户按下键盘上的删除按钮?
答案 0 :(得分:12)
如果要删除光标前的字符,则需要使用Keys.BACKSPACE
而不是Keys.DELETE
。 Keys.DELETE
用于删除光标后的字符。
答案 1 :(得分:4)
在python中,如果element.clear()(没有反应中的onChange)没有工作试试这个。
def clear_text(element):
length = len(element.get_attribute('value'))
element.send_keys(length * Keys.BACKSPACE)
答案 2 :(得分:1)
您可以使用Ctr+a
突出显示文本并通过BACKSPACE
将其删除:
element.send_keys(Keys.CONTROL, 'a')
element.send_keys(Keys.BACKSPACE)
答案 3 :(得分:1)
为什么没有人说需要进口?
from selenium.webdriver.common.keys import Keys
答案 4 :(得分:0)
我正在尝试模拟用户在字段中键入然后删除 他们输入了什么
如果您尝试一次删除一个键,则正如@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()
答案 5 :(得分:0)
此外,如果您要删除整个文本,可以在一个单独的函数中模仿this.theList[n] = object
和ctrl + a
,如下所示:
backspace