Попытка прочитать все оглавление с помощью DOJO во время выполнения с помощью стороннего внешнего инструмента с использованием вставки JavaScript - PullRequest
0 голосов
/ 03 октября 2019

странный вопрос, но я сделаю все возможное, чтобы объяснить. Я использую сторонний инструмент для автоматизации внешнего интерфейса систем, т. Е. Инструмент может отображать интеграцию, скажем, с внешним интерфейсом браузера, для репликации действий пользователя. Я сталкивался с инструментом, где на экране представлена ​​таблица, а сторонний инструмент не может прочитать все записи на экране, которые он может отображать только в DOM 4/5 за один раз, то есть может быть 500 результатов нана экране, но если я проверяю DOM, отображаются только 4/5, а если я прокручиваю, то следующие 4/5 отображаются в DOM. После некоторых копаний я пришел, чтобы узнать, что веб-страница загружается с помощью чего-то, называемого Dojo (библиотека javascript, с которой я совсем не знаком). Обычно, когда возникает такая проблема на основе JavaScript, мы можем создать код JavaScript, который при загрузке страницы мы можем «вставить» в HTML-код страницы и затем запустить. Например, для сравнения, если кнопка ссылки не работает, мы можем вставить следующее в страницу HTML после ее загрузки в браузере

function myFunction(p1, p2) {
  window.location.href = "http://www.somewhereElse.com";
}

, а затем из стороннего приложения я мог бы вместо этого вызвать функцию myFunctionполагаться на кнопку. Теперь, напротив, я пытался делать то же самое в течение недели или около того с Додзё, но у меня нет опыта в этой области, и я действительно могу делать только простые вещи, но в конечном итоге я попытался создать действительно простой для каждого цикла, а затем пытатьсячтобы получить все значения, скажем, с помощью тега вроде

dojo.query("select").forEach("<td>");

Это вызывает синтаксическую ошибку (хотя я не уверен, почему именно), но я нахожу, когда я пытаюсь наметить пути в полях и т. д. заставить его работать. Формат xpath выглядит следующим образом:

.. / .. / Div (n) / Table (1) / TR (1) / TD (1-30)

, т.е. одна таблица в DIV n (где n равно 1-4 для результатов на загруженном экране) и в этой таблице div с одной строкой и несколькими ячейками. Так что я хотел бы сделать что-то вроде (написано псевдо)

function SomeName(

dojo.ForceLoadAllElementsInList();

//all elements visible in DOM or accessible by Dojo

dojo.Query("Select").forEach(elementInTheListingReturnAsArray);
}

Единственная проблема, с которой я столкнулся при таком подходе, заключается в том, что я все еще держу пари в способах мышления DOM, так что я не уверен, какчтобы объяснить это, но я хочу, чтобы додзё на странице было обманчиво / принудительно загружать все результаты, а не лениво загружать их при прокрутке, а затем использовать какой-либо GET-запрос, чтобы вытянуть все результаты в массив из страницы.

Это выполнимо с Додзё или мне нужно вернуться к чертежной доске?

...