Вы объявляете elementArrayFinder
element.all(by.css("button[class*='btn-info']")) // <--- .all means many elements
Это означает, что вы ожидаете, что на странице будет несколько элементов. Поэтому вам нужно проинструктировать транспортир, какой из них вы хотите использовать. Для этой цели вы можете использовать .get () метод
Таким образом, если вы сделаете
element.all(by.css("button[class*='btn-info']")).get(0).click();
Скрипт щелкнет по первому элементу этого локатора. Точно так же вы можете указать, что нужно щелкнуть второй (.get(1)
), третий (.get(2)
) элементы et c
Другой вариант - объявить функцию, которая будет возвращать элемент по тексту
let buyPhoneButton = function (name) {
return element(by.xpath("//a[text()=" + name + "]/ancestor::app-card//button"))
}
а затем используйте
buyPhoneButton("iphone X").click()
Если помогло, примите ответ