如何使用动态@id 将文本发送到输入字段

How to send text to input field with dynamic @id

我曾尝试寻找所有关于 SO 的解决方案和综合答案,但无济于事。我正在尝试填写动态 @id 表单并将我的代码逻辑应用于我的测试站点和 udemy 似乎不起作用。

driver.get('https://www.udemy.com/')
#search= driver.find_element_by_xpath('//*[contains(@id,"-search-form-autocomplete--3")')
s = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[contains(@id,"-search-form-autocomplete--3")')))
s.send_keys("robotics")

你有没有在你的代码中加入 from selenium.webdriver.common.keys import Keys

xpath 未正确关闭关闭 ] 丢失因此可能是例外。另一件事是请添加必要的导入

当我修复 xpath 时,您的代码确实对我有用 -

修复后的代码-

driver = webdriver.Chrome()
driver.get('https://www.udemy.com/')
#search= driver.find_element_by_xpath('//*[contains(@id,"-search-form-autocomplete--3")')
s = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[contains(@id,"-search-form-autocomplete--3")]')))
s.send_keys("robotics")

需要进口 -

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

输出-