代码试验:
voucher_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located ((By.NAME, "voucher")))
我尝试在代码中更改输入字段的名称仍然没有解决它
假设元素的相关 HTML 是:
<input name="voucher" ...>
要将字符序列发送到元素而不是presence_of_element_located(),您需要为element_to_be_clickable()引入WebDriverWait,您可以使用以下任一定位器策略 :
使用NAME:
voucher_input = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "voucher")))
使用CSS_SELECTOR:
voucher_input = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='voucher']")))
使用XPATH:
voucher_input = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='voucher']")))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
找到输入框后,您可以使用 send_keys() 方法向其中输入文本。
voucher_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "voucher")))
voucher_input.send_keys("your text here")