(Selenium)- 在 Flikart 上找不到建议者定位器?

问题描述 投票:0回答:2

在 Flipkart 网站上 - https://www.flipkart.com/

我正在搜索栏中输入“笔记本电脑”

现在我想单击第五个建议,无论它是什么,在本例中它是笔记本电脑桌。

如何在打开控制台时找到它的 xpath(定位器) - 建议器会自动关闭?

selenium-webdriver ui-automation browser-automation flipkart-api
2个回答
0
投票

由于您没有分享您的代码试验,也没有提到您使用哪种编程语言,我认为它是 PYTHON。

下面是适合您的 XPath 表达式:

//form[@method='GET']//ul//li[5]

注意:

[5]
- 指第五个下拉建议项

Python 中的工作代码:

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

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.flipkart.com/")
wait = WebDriverWait(driver, 10)

# Below line will click on the inital login pop-up's X button
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[@role='button']"))).click()
# Below line will enter 'laptop' in the desired text box
wait.until(EC.element_to_be_clickable((By.NAME, "q"))).send_keys("laptop")
# Below line will click the 5th dropdown suggestion item
wait.until(EC.element_to_be_clickable((By.XPATH, "//form[@method='GET']//ul//li[5]"))).click()
time.sleep(10)

0
投票

如前所述,在探索 Flipkart 搜索栏时,您可能会发现建议自动关闭,这在使用 XPath 时构成了挑战。

这里有一个有用的提示:检查元素后,导航到事件侦听器。通过删除与“blur”事件关联的任何操作,您可以保持建议的可见性。这种方法简化了检查过程,并允许导出 XPath 表达式以进行进一步分析。

这是我为实现此目标而实现的 Python 代码:

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

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.flipkart.com/")
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.XPATH, "//span[@role='button']"))).click() # This is to close the intial pop up
wait.until(EC.presence_of_element_located((By.XPATH,"//input[@class='Pke_EE']"))).send_keys("laptop")
wait.until(EC.presence_of_element_located((By.XPATH, "//ul[@class='_1sFryS _2x2Mmc _3ofZy1']//li[5]"))).click()
time.sleep(10)

如果您希望执行实际测试,我已经使用 Test Assist(一个无代码 Selenium 编辑器)创建了一个测试用例。我邀请您点击以下链接来查看并执行测试用例。

© www.soinside.com 2019 - 2024. All rights reserved.