Hashmap возвращает только одно значение из всех WebElements

#java #selenium #hashmap

#java #селен #hashmap

Вопрос:

Я пытаюсь получить все результаты с сайта Amazon результатов поиска toy car в hashmap, но он сохраняет только первое значение.Я также возвращаю результаты этого hashmap в методе main Пожалуйста, найдите фрагмент моего кода ниже public HashMap<Целое число, строка> amazonresults(драйвер WebDriver) {

     HashMap<Integer, String> adf = new HashMap<Integer, String>();
    driver.get("http://amazon.in");

    Actions a = new Actions(driver);
    
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    WebElement searchbox = driver.findElement(By.id("twotabsearchtextbox"));
    a.moveToElement(searchbox).click().sendKeys("toy car").build().perform();
    a.sendKeys(Keys.ENTER).build().perform();
            List<WebElement> product = driver
            .findElements(By.cssSelector("span[class ='a-size-base-plus a-color-base a-text-normal']"));

    int i = 0;

    for (i = 0; i < product.size(); i  ) {

        adf.put(i, (product.get(i).getText()));
    }
    return adf;
}


public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver", "C:\Users\SagarikaRoyChoudhury\chromedriver.exe");
    WebDriver driver = new ChromeDriver();

    Scope sc = new Scope();
    System.out.println(sc.amazonresults(driver));
 

}

Комментарии:

1. Amazon предоставляет API, который позволяет извлекать информацию о продукте .

2. Содержит ли ‘List<WebElement> product’ несколько элементов или только один? поместите туда SOP.

3. Я протестировал ваш код с более высоким неявным ожиданием (30 секунд), и он работает нормально.