Selenium webdriver - итерируйте, найдите webelement и затем нажмите на него - как я могу это сделать? - PullRequest
0 голосов
/ 20 апреля 2020

Я хотел бы найти веб-элемент с видимым текстом «7000118777», однако я не знаю, как точно найти его в списке, а затем щелкнуть по нему.

Когда я выполняю итерацию это показывает, что индекс равен -1, и я получаю ошибку «productList.get (-1);» - это не правильно.

public void findProductAndAddToCart(String product) {

        List<WebElement> productList = SeleniumDriver.getDriver().findElements(By.className("bcom--txtBold"));

        for (WebElement webElement : productList) {
            String elements = (webElement.getAttribute("innerHTML"));
            int indexOfProduct = elements.indexOf("7000118777");

            System.out.println("Indeks produktu "+indexOfProduct);
        }
        productList.get(-1);

1 Ответ

2 голосов
/ 21 апреля 2020

Так как вы не предоставили ссылку на URL или скриншот вашего html, это то, что я понимаю из вашего вопроса, что вы хотите щелкнуть по элементу из списка, где видимым текстом является "7000118777". Я также считаю, что вы правильно расположили элементы, т. Е. Ваш список товаров. Пожалуйста, используйте приведенный ниже код (замените myDriver на ваш WebDriver):

 List<WebElement> productList = myDriver.findElements(By.className("bcom--txtBold"));
        for (int i=0; i< productList.size();i++) {
            String element=productList.get(i).getText();
            if(element.equals("7000118777"))
            {
                productList.get(i).click();
            } 

        }
...