如何找到第一个搜索产品的 xpath

How to find xpath for first searched product

如何为给定页面上的第一个搜索元素找到 XPath https://www.amazon.com/b/?encoding=UTF8&node=2346727011&bbn=7141123011&ref_=Oct_d_odnav_1040660&pd_rd_w=WJf7p&pf_rd_p=72459b27-e231-4837-b61c-b057ff0c50ac&pf_rd_r=YMKJ7M0AMXW5GER3MMRQ&pd_rd_r=eba15a0a-f59c-4dfd-a693-7c2f7f3416cf&pd_rd_wg=LRrkE

我在 html 页面上尝试了下面的 XPath.. 它显示了元素,但是当使用 selenium 代码时它显示错误 invalid selector: Unable to locate an element with the xpath expression

//div[@id='CardInstance1wPgwM8pHmoJmdnyjYOeWg']//child::div[2]//div[1]//div[1]//div[1]//div[2]//div[@class='a-section a-spacing-none a-spacing-top-small s-title-instructions-style']//span

请帮我找到第一个搜索产品的 xpath。

提前致谢。

可以直接使用

//li[starts-with(@class,'octopus-pc-item')]

这确实有 26 个条目,并且在 HTML 中不是唯一的,但是,findElement 将 return 第一个匹配的节点。

此外,您还可以像下面这样进行索引

(//li[starts-with(@class,'octopus-pc-item')])[1]

[2] 对于第二个产品等等...对于其他产品

执行如下点击

  1. 使用ExplicitWaits

    wait = new WebDriverWait(driver, Duration.ofSeconds(30));
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//li[starts-with(@class,'octopus-pc-item')]"))).click();
    
  2. 使用findElement

    Thread.sleep(3000);
    driver.findElement(By.xpath("(//li[starts-with(@class,'octopus-pc-item')])[1]")).click();