Size: a a a

Selenide на русском

2020 September 18

A

Anton in Selenide на русском
Roman Speranskii
Какой-то слишком грязный хак.
Хочется дождаться ответа "отца" Andrei  😂
тут другой Андрей "Отец" =)
источник

A

Anton in Selenide на русском
источник

RS

Roman Speranskii in Selenide на русском
Anton
тут другой Андрей "Отец" =)
Цсс... Главное чтобы не спалили )
источник

A

Anton in Selenide на русском
ну кажется проблема не в селениде, а так работает вебдрайвер
источник

С

Сергей in Selenide на русском
В selenide реально нет метода который позволяет получить индекс элемента?
источник

A

Anton in Selenide на русском
Сергей
В selenide реально нет метода который позволяет получить индекс элемента?
индекс где? в какой системе координат? =)
источник

A

Anton in Selenide на русском
просто 5ый или 5ая строка в конкретной таблице? =)
источник

YM

Yevgeniy Mikhailov in Selenide на русском
Сергей
В selenide реально нет метода который позволяет получить индекс элемента?
Если ты перебираешь коллекцию и сравниваешь какой-то признак элемента с ожидаемым, то ты уже работаешь с этим элементом, верни его, зачем возвращать его индекс?
источник

С

Сергей in Selenide на русском
Yevgeniy Mikhailov
Если ты перебираешь коллекцию и сравниваешь какой-то признак элемента с ожидаемым, то ты уже работаешь с этим элементом, верни его, зачем возвращать его индекс?
Я выше написал зачем мне индекс.
источник

A

Anton in Selenide на русском
Сергей
Все супер ... find помог ... Но что делать когда у меня к примеру есть список транзакций... У каждой title, amount, currency и прочие там детали. Я нужную транзакцию нахожу через find но возвращает она мне один элемент title, а мне проверить то надо не только title <XCUIElementTypeStaticText name="AccountBalanceLabel">
<XCUIElementTypeStaticText name="AccountTitleLabel">
<XCUIElementTypeStaticText name="AccountImageLabel">
берешь потом у этого элемента родителя - и вот у тебя вся строка, индекс и не нужен
источник

С

Сергей in Selenide на русском
.parent() что-то не решил проблему
источник

A

Anton in Selenide на русском
если прям индексы хочешь - то делать циклы без всяких модных фильтров и find в коллекциях
источник

A

Anton in Selenide на русском
ну на ios там наверное слишком хитрая с этим логика
источник

A

Anton in Selenide на русском
не будет тут универсального ответа. Просто нужно смотреть не в лоб, а думать в обход
источник

С

Сергей in Selenide на русском
Я написал уже два метода, но они мне что-то не нравятся. Думал может в самом селенида метод есть такой
источник

С

Сергей in Selenide на русском
Переслано от Сергей
private Map.Entry<Integer, SelenideElement> getSuitableElement(ElementsCollection elementsCollection, String transactionName) throws Exception {
       AtomicInteger i = new AtomicInteger();
       return elementsCollection
               .stream()
               .collect(Collectors.toMap(e -> i.getAndIncrement(), e -> e))
               .entrySet()
               .stream()
               .filter(data -> data.getValue().getText().equals(transactionName))
               .findFirst()
               .orElseThrow(() -> new Exception("Транзакция с именем - " + transactionName + " - не существует"));
   }
   }
источник

С

Сергей in Selenide на русском
Переслано от Сергей
private int getSuitableElementNumber(ElementsCollection elementsCollection, String text) throws Exception {
       int elementNumber = Integer.parseInt("null");
       for (int i = 0; i < elementsCollection.size(); i++) {
           if (elementsCollection.get(i).getText().equals(text)){
               elementNumber = i;
           }
       }
       if (elementNumber >= 0) {
           return elementNumber;
       } else {
           throw new Exception("В списке нет счета с названием " + text);
       }

   }
источник

AS

Andrei Solntsev in Selenide на русском
Сергей
Я выше написал зачем мне индекс.
Нет, в селениде нет метода, который возвращает индекс. Заметь, что такого метода нет и в стандартных коллекциях Java (ArrayList и т.д.). И это неспроста. Любой объект может одновременно находиться в куче разных списков. Он же не может хранить все свои индексы во всех списках.
источник

AS

Andrei Solntsev in Selenide на русском
А твоя проблема решается проще. Как тут уже написали, что-то типа $$().find().parent() вернёт тебе нужный элемент. Без всяких индексов.

Если parent не работает, надо разбираться, почему.
источник

RS

Roman Speranskii in Selenide на русском
Andrei Solntsev а за куки - вопрос выше можешь ответить?)
источник