无法通过 xpath 或 css 选择器找到文本框元素

can't find text box element by xpath or css selector

我正在尝试在网页的文本框中输入一些文本,这是屏幕截图 screenshot for Enter Symbol。

除了屏幕截图中突出显示的文本框外,我的代码适用于所有其他元素:

WebDriverWait(driver, 40).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="main-content-column"]/div/div[3]/div/div[1]/form/div/div/div[2]/input'))).send_keys("aapl")

它看起来不像在框架或 iframe 中。请查看网站源代码:

<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" placeholder="Add a symbol..." class="sec-search-box bc-form__add-symbol-input ng-pristine ng-invalid ng-invalid-required ng-touched placeholder" data-ng-model="userEnteredSymbols" data-barchart-clear-input="" required="">

非常感谢。

您可以使用 xpath 输入值:

WebDriverWait(driver, 40).until(EC.visibility_of_element_located((By.XPATH, "//input[@data-ng-model='userEnteredSymbols']"))).send_keys("aapl")

您正在使用 Absolute xpath,这不是推荐的方式。您可以尝试使用以下 xpathwebdriver wait

element = WebDriverWait(browser, 30).until(EC.visibility_of_element_located((By.XPATH, "//input[@data-ng-model= 'userEnteredSymbols']")))
element.send_keys("aapl")

你需要下面的导入

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