如何使用Selenium和Python将DELETE击键发送到文本字段?

2024-04-27 16:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用SeleniumWebTester将Keys.DELETE击键发送到文本字段?我试图模拟用户在一个字段中键入内容,然后删除他们键入的内容,以测试交互式自动建议功能。它应该将列表筛选为以查询开头的项,然后在删除查询时再次显示所有可能的建议。不幸的是,发送.clear()无法再次取消筛选列表。也不发送密钥('\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

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


Tags: 用户内容列表getby键入driverelement
3条回答

您可以使用Ctr+a突出显示文本并通过BACKSPACE删除它:

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

如果要删除光标前的字符,则需要使用Keys.BACKSPACE,而不是Keys.DELETEKeys.DELETE用于删除光标后面的字符。

在python中,如果element.clear()(在react中不触发onChange)不起作用,那么试试这个。

def clear_text(element):
            length = len(element.get_attribute('value'))
            element.send_keys(length * Keys.BACKSPACE)

相关问题 更多 >