Я пытаюсь выбрать продукт из своего списка продуктов на основе его названия.С помощью Protractor, как я могу выбрать объект DOM в списке на основе текста?
То, что я хочу сделать, это сказать: «Если элемент из списка имеет название, которое соответствует„куриной грудки (200 г)“, а затем нажмите кнопку.
Кто-нибудь знает, как писать это в транспортира?
Я изо всех сил, чтобы выяснить, что возвращается в какой момент, какие обещания, а что нет и как ждать, пока у меня есть результат, прежде чем делать что-нибудь.
структура дом выглядит
<li ng-repeat="item in filteredItems" class="ng-scope">
<div class="product">
<h3 class="product-title text-uppercase ng-binding" ng-bind="item.name">Chicken Breast (200g)</h3>
<div class="pad-top-10">
<button class="btn btn-default btn-xs" type="button" ng-click="addItem(item)">
<span class="product-add-label">Add Item</span>
</button>
</div>
</div>
</li>
Я попытался это до сих пор:
this.Given(/^I can see "([^"]*)" on the page$/, function (productName, done) {
element.all(by.repeater('item in filteredItems')).then(function (products) {
for(var i = 0; i < products.length; i++){
var title = products[i].element(by.css('.product-title'));
title.getText().then(function (text) {
if (text.toLowerCase() === productName.toLowerCase()) {
console.log(text);
// products[i] shows as undefined
console.log(products[i]);
done();
}
})
}
});
});