Невозможно нажать кнопку Поиска

#node.js #button #protractor

#node.js #кнопка #транспортир

Вопрос:

Я не могу нажать кнопку поиска в следующем HTML-файле. Я пытался найти его с помощью .css, .cssContaining, .className, .xpath . Любая помощь будет признательна!

 <div class="ncol-xs-offset-11 ncol-md-3 saveFilter">
    <button class="searchBtn-align">
        <i class="fa fa-search fa-lg">
        </i> Search
    </button> 
    <button class="searchBtn-align">
        <i class="fa fa-refresh fa-lg">
        </i> Reset
    </button>
</div>
  

код

 var buttonSearch = element(by.xpath('//button[. = " Search"]'))
browser.isElementPresent(buttonSearch).then(function (present) {
    if (present == true) {
        //buttonSearch.click();
        console.log('Search button was clicked');   
    }
    else {
        console.log('Search button was NOT located');
    }
})
  

Ответ №1:

Вы можете использовать свой локатор xpath следующим образом: //button[contains(.,'Search')] . и затем

 var buttonSearch = element(by.xpath("//button[contains(.,'Search')]"))
buttonSearch.isPresent().then(function (present) {
    if (present) {
        buttonSearch.click().then(()=>{
          console.log('Search button was clicked');
        });
    } else {
        console.log('Search button was NOT located');
    }
})
  

или с помощью async

 var buttonSearch = element(by.xpath("//button[contains(.,'Search')]"))

if (await buttonSearch.isPresent()) {
  await buttonSearch.click();
  console.log('Search button was clicked');   
} else {
  console.log('Search button was NOT located');
}
  

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

1. Похоже, проблема связана с локатором. Я пробовал с «Поиском» и «Поиском». Я надеялся, что cssContaininText найдет его … с этим тоже не повезло. Какие-либо другие варианты?

2. Пытается проверить, что кнопка существует через: expect(element.all(by.xpath(‘//кнопка[. = «Search»]’)).count()).toBeGreaterThan(0); в результате ожидаемый 0 будет больше 0.

3. 1. это не тот локатор, который я написал. 2. Это может быть неправильный способ проверки количества, если только вы не используете транспортир 4 или меньше

4. У меня версия 5.4.2

5. Сергей, спасибо вам за вашу помощь в этом! Это было решено.

Ответ №2:

вы пробовали с element(by.css('.searchBtn-align')); ?

или даже element(by.buttonText('Search'));