Python/Selenium 如何选择自动完成搜索栏的第一个选项

Joh*_*ith 5 python selenium

我正在尝试在该网站的搜索栏中输入关键字,然后选择出现的第一个自动完成选项。如果我要手动执行此操作,我会在搜索栏中输入“remote”,然后按向下键,然后按 Enter 键,我尝试在下面的代码中复制它,但它似乎跳过向下键部分而不选择第一个自动完成选项并转到搜索结果页面而不是此页面,这是第一个自动完成选项。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("https://confluence.eits.uga.edu/dashboard.action")

elem = driver.find_element_by_id("quick-search-query")
elem.send_keys("remote")
elem.send_keys(Keys.ARROW_DOWN)
elem.send_keys(Keys.RETURN)
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么向下键没有被注册或者我没有使用正确的语法吗?

ale*_*cxe 5

您仍在将密钥发送到触发搜索的搜索输入。相反,找到第一个快速搜索下拉选项并向其发送密钥:

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

driver = webdriver.Chrome()
driver.get("https://confluence.eits.uga.edu/dashboard.action")

elem = driver.find_element_by_id("quick-search-query")
elem.send_keys("remote")
elem.send_keys(Keys.ARROW_DOWN)

# wait for the first dropdown option to appear and open it
first_option = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".quick-search-dropdown li a")))
first_option.send_keys(Keys.RETURN)
Run Code Online (Sandbox Code Playgroud)