首页 > 解决方案 > 无法使用 Selenium webdriver 选择并单击下拉搜索查询结果

问题描述

我试图从搜索框结果下拉列表中执行选择并单击操作以进行测试。虽然我没有收到 ant 错误,但我被卡住了,无法这样做,搜索结果来了,然后立即消失了。请任何人帮助我。我使用 Python 脚本来自动化 webdriver。这是下面的屏幕截图以供参考。 在此处输入图像描述. 我已经尝试 webdriverwait 进行相同的操作,但它给出了超时异常错误。如果有任何来自 CSS 的子操作要执行,请告诉我。这是我尝试过的

search = driver.find_element_by_id('searchInput')
search.send_keys("flowers")

dropdown = WebDriverWait(driver, 4).until(
        EC.presence_of_element_located((By.XPATH, "//li[text()='flowers']")))

除了这个片段,我只想执行回车键操作,我在这个 ecomm 上得到“花”的查询结果。网站。

这是网站网址 - https://paytmmall.com

标签: pythonselenium-webdriver

解决方案


输入flower后,将根据提供的输入显示input field多个选项。他们在里面li tags和下面b tag

代码 :

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
#driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("https://paytmmall.com/")
search = wait.until(EC.visibility_of_element_located((By.ID, "searchInput")))
search.send_keys("flowers")
time.sleep(3)
wait.until(EC.visibility_of_element_located((By.XPATH, "(//li)[4]/descendant::b[contains(text(),'flowers')]"))).click()

time.sleep只是为了可见性目的。你也可以删除它。

xpath (//li)[4]/descendant::b[contains(text(),'flowers')]也是基于xpath indexing,因为我认为您想选择第 4 个选项,即花本身。如果您想要select不同的选项,则必须编写不同的xpath.

如果您只想选择搜索的项目,最好在输入字段中输入花后通过输入键。

您可以为此使用以下代码:

search = wait.until(EC.visibility_of_element_located((By.ID, "searchInput")))
search.send_keys("flowers")
time.sleep(3)
search.send_keys(Keys.RETURN)

推荐阅读