Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

как найти несколько элементов на странице используя findelementS


(Максим Егоров) #1

есть такая задача автоматизировать результаты поиска например гугле
например в строке поиска вводим “apple”
и на странице результатов необходимо подтвердить наличие хотябы трех слов “apple”
метод findelementS возвращает массив, но я не могу с ним справиться.
не могу от туда вытащить “apple”.
я только начинаю писать на java и еще не совсем освоился

код выглядит так

@Test
public void searchengineiherb() {
String TextForSearch = “tea”;
driver.get(“http://www.goggle.com”);
// HomePage homepage = new HomePage(driver);
// homepage.SearchIherb(“tea”);
driver.findElement(By.id(“txtSearch”)).sendKeys(TextForSearch, Keys.ENTER);
String result = driver.findElement(By.id(“FilteredProducts”)).getText();
System.out.println(result);

   List <WebElement> elements = driver.findElements(By.xpath("//a[2]/h1"));
    int elementlistsize = elements.size();
    System.out.println(elementlistsize);
        int entrances = 0;
        for (WebElement resultnew : elements) {
            if (resultnew.getText().contains("неужели")) {
                entrances++;
            }
            if (entrances == 3)
                return true;

        }
           return false;

(Aleksey Ilyenko) #2

Не хотелось бы вас запутывать, но со stream’ами это можно сделать вот так:

boolean success = driver.findElements(By.xpath("xpathLocator"))
                .stream()
                .filter(element -> element.getText().contains("searchCriteria"))
                .limit(NEEDED_COUNT)
                .count() == NEEDED_COUNT;

#3

Скорее сего вы вот сюда

подставляете apple и ждете, что вам что то найдет.
contains не является регистронезависимым, и Aplle не равен apple

вариант решения “в лоб” resultnew.getText().toLowerCase().contains("apple"))

PS. и еще не очень понять что вы пытаетесь вернуть в void методе


(5am) #4

стиль нейминга переменных - тихий ужас
почитайте какой ни будь Code Conventions для Java или полистайте книжку Совершенный код.