【问题标题】:How to "click" on certain proposal from autosuggestion on Amazon using Selenium?如何使用 Selenium 从亚马逊上的自动建议中“点击”某些建议?
【发布时间】:2019-10-09 23:55:52
【问题描述】:

我正在尝试在 amazon.com 上自动完成自动完成建议。但与谷歌搜索选项不同,建议的 xpath 总是在变化。我发布的代码并非每次都有效,因为有时所需建议的 xpath/id/cssselector 会发生变化(@id=\"issDiv8\"] 有时它是 "issDiv4" 或 "issDiv6" 等等。

WebElement searchTextField = driver.findElement(By.id("twotabsearchtextbox"));

searchTextField.sendKeys("turbo");

WebDriverWait wait = new WebDriverWait(driver, 20);

wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id=\"issDiv8\"]")));
List<WebElement> autoSuggest = driver.findElements(By.xpath("//*[@id=\"issDiv8\"]"));


System.out.println("Auto Suggest List ::" + autoSuggest.size());
for (int i = 0; i < autoSuggest.size(); i++) {
    System.out.println(autoSuggest.get(i).getText());
    if (autoSuggest.get(i).getText().equals("turbotax")) {
        autoSuggest.get(i).click();
        System.out.println("Success");

        break;

【问题讨论】:

  • 欢迎来到 Stack Overflow!请避免使用第三方服务来显示图像。如果您需要添加图像,请在编辑时单击图像按钮,或复制图像并单击 CTRL+V,或以任何其他方式将其粘贴到帖子中,将它们添加到帖子中。第三方图片服务can break at any time,要么留下死链接,要么网址可用于恶意目的。

标签: javascript java selenium amazon autosuggest


【解决方案1】:

使用WebdriverWait处理动态元素,使用下面的xpath

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@data-keyword='turbotax']")));
element.click()

【讨论】:

  • 当我尝试买东西时,我对“数量”有几乎相同的问题。我应该提出新话题还是可以在这里提问?
  • @Alex :那应该是不同的问题。这是特定问题的解决方案,可供未来的读者使用。如果您在单个帖子上提出多个问题,OP 可能会混淆看到此答案。谢谢。
猜你喜欢
  • 2016-06-30
  • 1970-01-01
  • 2019-09-21
  • 1970-01-01
  • 2015-07-07
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-08
相关资源
最近更新 更多