#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'));