Отвал JS скрипта

N_Chernata

New member
Здравствуйте!

Стоит задача навигации по сайту и дальнейшей выгрузки с него различной документации.

На одной из страниц появилась задача произвести клик по последнему обьекту из нескольких однотипных.

@"const itemList = document.querySelectorAll('.sji-item-list');
let rightItem = itemList[itemList.length - 1];
rightItem.click();"

Данный скрипт отработал дважды в тестовом режиме, после чего все время возникала ошибка "Pipe is broken".

В других случаях, когда массив фиксированной длины и необходимо было произвести клик по последнему элементу, можно было это сделать по индексу как в примере ниже.
1616069791184.png
Собственно вопросы:
1. В чем причина сбоя в js скриптах? - в дальнейшем хотелось бы иметь возможность их использовать, это бы решило массу проблем.
2. Возможно ли без JS-а сделать клик по последнему элементу наподобие того, как это сделано во втором примере? Через какие-нибудь методы Last() или FindLast() (Не получилось это реализовать)
 
Добрый день.

1. В чем причина сбоя в js скриптах? - в дальнейшем хотелось бы иметь возможность их использовать, это бы решило массу проблем.
Причина может быть в том, что код js-скрипта записан построчно. Попробуйте записать через пробел:
Teams_50Ga5OtkAs.png

2. Возможно ли без JS-а сделать клик по последнему элементу наподобие того, как это сделано во втором примере? Через какие-нибудь методы Last() или FindLast() (Не получилось это реализовать)
Да, нужно выбрать вторую опцию для активности "Найти веб-элементы" и использовать метод LastOrDefault() или Last() к переменной результата поиска.
 

N_Chernata

New member
Спасибо!
Второй вариант рабочий, хотя раньше возникали какие-то проблемы.
JS отработал 1 раз и на этом все. Похоже существуют еще какие-то нюансы.
 
JS отработал 1 раз и на этом все. Похоже существуют еще какие-то нюансы.
Возможно ошибка происходит при запуске кода без обновления страницы. Так как при попытке переопределения константы возникает ошибка на уровне JS-кода.
skrench.png
 

N_Chernata

New member
Возможно ошибка происходит при запуске кода без обновления страницы. Так как при попытке переопределения константы возникает ошибка на уровне JS-кода.
Я пробовал все это дело через изменяемые переменные вместо констант, через обнуление этих переменных, но, к сожалению, пока не помогло.

Но решение где-то рядом, поскольку hard reload (Ctrl + Shift + R) страницы решает проблему, но все так же на один раз.

После hard reload в какой-то момент возникла давно забытая проблема "Pipe is broken".
Решить ее выключением-включением плагина в хроме или просто закрытием-открытием хрома пока не удалось.
Нужно ли для этого открыть новую тему на форуме?
 
Какая у Вас версия программы ChromeMessagingHost.exe ? (лежит в C:\Users\<UserName>\AppData\Local\PIX\BrowserExtensions\<BrowserName>).
Teams_L6Bb5mkKIe.png
Последняя версия 1.3. Если у Вас более ранняя, то для обновления нужно в настройках Студии выбрать "Установить расширение Google Chrome".
 
Последнее редактирование:

N_Chernata

New member
Версия 1.1
После сообщения об успешной установке, версия все та же.
Если удалить этот файл и снова установить расширение, то версия все еще 1.1
 
Подскажите, какая у Вас версия Студии? Если версии более ранние, чем 1.23.1, то рекомендуем обновиться до последней версии на официальном сайте PIX Platform https://pixrpa.ru/
 
Верх