python - 如何使用 Selenium Python 清除文本字段

标签 python python-3.x selenium textbox

这是我的代码以及我迄今为止尝试过的内容:

from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait     
from selenium.webdriver.common.by import By     
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

PATH = "driver\chromedriver.exe"
driver = webdriver.Chrome(executable_path=PATH)
url = 'https://www.mergermarket.com/homepage'
driver.get(url)

deals = driver.find_element_by_xpath('//*[@id="header"]/div/div[2]/nav/ul/li[4]/a')

urldeals = deals.get_attribute("href")
driver.get(urldeals)

custom1 = driver.find_element_by_xpath('//*[@id="searchCriteriaSummary"]/div[4]/div/div[2]/div/div[1]/div[2]/div/div/div[2]/div')
custom1.click()

custom2 = driver.find_element_by_id('react-select-12-option-0')
custom2.click()
time.sleep(1)

date = driver.find_element_by_xpath('//*[@id="date-picker_from"]')
date.click()
date.send_keys('01/11/2021') 
time.sleep(1)

date2 = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="date-picker_to"]')))
date2.click()
date2.clear()
date2.send_keys("15/11/2021")

最后两段是我挣扎的地方。

我有这个:

date

当我在左侧的输入文本中输入 01/11/2021 时,网站会自动将实际日期写在右侧(26/11/2021 right现在)。

我想清除实际日期并输入我的日期,但我找不到如何做到这一点。我做了这段代码:

date2 = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="date-picker_to"]')))
date2.click()
date2.clear()
date2.send_keys("15/11/2021")

但它只是在实际日期之后写了我的日期:

date2

我尝试了多种方法,但结果总是相同。这里是 html 代码(如果有帮助的话):

html

最佳答案

而不是这个

date2 = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="date-picker_to"]')))
date2.click()
date2.clear()
date2.send_keys("15/11/2021")

您可以像这样触发ctrl+A删除

date2 = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="date-picker_to"]')))
date2.click()
date2.send_keys(Keys.CONTROL + "a")
date2.send_keys(Keys.DELETE)
date2.send_keys("15/11/2021")

导入:

from selenium.webdriver.common.keys import Keys

此外,以同样的方式,您也可以触发 Backspace

date2 = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="date-picker_to"]')))
date2.click()
date2.sendKeys(Keys.BACK_SPACE)  
date2.send_keys("15/11/2021")

关于python - 如何使用 Selenium Python 清除文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70125902/

相关文章:

javascript - 对于 Python,获取 WebDriverException : Message: u'[JavaScript Error: "e is null"

python - 如何刷新 Matplotlib 中的文本?

python - 根据 pandas 中的行值选择列,并使用列索引进行子集化

c# - Selenium WebDriver MoveToElement - 隐藏元素、悬停和切换类

python - 在 for 循环中将列表附加到新列表

python - 不能将序列乘以 Float 类型的非整数? Python

python - 迭代所有节点的总和 - 非递归 - 没有 'left' 和 'right'

Python 和环境变量不起作用

python-3.x - 从图像中自动检测语言以提取 OCR 字符

java - Chrome 驱动程序无法在 Win XP 上加载