Как проверить, соответствует ли текст в окне поиска ссылке? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть окно поиска: ex: Когда вы набираете текст: BestBuy и нажимаете кнопку поиска, пара ссылок отображается как ссылка BestBuy.Как вы проверяете совпадения текста с первой ссылкой.Это похоже на поисковую систему Google.

public boolean check(String enterNameOfLink, String matchText) {
    return check.Matches(matchText, enterNameOfLink);

    Matches(String textToCheck, MobileElment link) {
        boolean check = false;
        for(int i = 0; i < link.lenght; i++){
            match = element[i].getText().trim().equalsIgnoreCase(textToCheck);
            if(check){
                return match;
            }
        }
    }
    return false;
}

Я получаю сообщение об ошибке, которое не соответствует.

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

При поиске BestBuy отображается несколько ссылок.К нему следует добавить ожидание.

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            var element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//ul[@class = 'sbsb_b']")));

Получить все элементы списка по TagName

 var listElement = element.FindElements(By.TagName("li"));

Класс действий пользователя для наведения мыши на ссылки

Actions action = new Actions(driver);

Получить текст первого элемента из списка

var firstElement = listElement[linkNumber].Text;

Пользователь Подтвердить, чтобы увидеть, совпадает ли ожидаемый результат с фактическим результатом

Assert.AreEqual(matchText,firstElement);

В случае необходимости нажать напервая ссылка

 action.MoveToElement(firstElement ).Click().Perform();
0 голосов
/ 21 мая 2019

Ваше if условие имеет значение check логическое, и вы инициализировали его как false, так что ваше условие if никогда не будет выполнено, и вам не нужно добавлять несколько операторов return в ваш код, вы можетеизмените значение логического значения, если текст соответствует, в противном случае это уже ложь.

Ваш код должен быть таким:

public boolean check(String enterNameOfLink, String matchText) { 
    boolean match = false;

    for(int i = 0; i < link.lenght; i++){
        if(element[i].getText().trim().equalsIgnoreCase(textToCheck)){
            match = true;
        }
    }
    return match;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...