Blue Prism JavaScript - Невозможно четко определить элемент / HTML / BODY для вставки JS фрагментов - PullRequest
0 голосов
/ 21 апреля 2020

Я работаю с некоторой автоматизацией в BP и решил использовать JS фрагменты для вызова в Chrome (у меня установлен плагин BP). Чтобы сделать его более надежным, я создал 2 элемента, чтобы проверить, загружена ли уже страница и существует ли на странице указанный элемент c. Чтобы проверить, загружена ли страница, я вставляю такую ​​функцию:

function CreateLoadedElement(){var LOADED = document.createElement("ChromePageLoadedForBluePrism");document.head.appendChild(LOADED);}

и затем вызываю ее при действии:

window.onload = CreateLoadedElement();

И она работает нормально. Однако проблема появляется на следующем шаге при определении элемента веб-страницы на основе аналогичного правила: 1. Создайте элемент-пустышку, чтобы получить пустое место для хранения данных внутри:

if (document.getElementById("JSOutput") == null){
    // Add invisible textbox
    var body = document.getElementsByTagName("body")[0];
    var text = document.createElement("input");
    text.id = "JSOutput";
    text.style.display = "none";
    body.insertBefore(text, body.firstChild);
}
else  {
    // Clear invisible textbox
    document.getElementById("JSOutput").innerText = "";
}

Помещение значения true / false в пустое текстовое поле на основе существования элемента:

    if(document.querySelector('#elementID')){
        output.value = 'True';
    } else {
        output.value = 'False'
    }

Считывание значения временного текстового поля и его преобразование во флаг.

И все будет работать нормально, я думаю, но я заметил, что некоторые веб-страницы в Chrome динамически меняют свой индекс HTML / соответствия (например, Google Translate, но и другие, не связанные с Google) страницы) и иногда это работает, иногда нет. Я несколько раз пытался четко идентифицировать HTML Body, однако, похоже, что нет никаких правил. Обычно на странице есть два элемента / HTML, но одновременно виден только один элемент (что постоянно и произвольно меняется с индексом совпадения 1 или 2).

Есть ли у вас какие-либо идеи о том, как я может решить эту проблему, определив HTML Body или, возможно, изменив функции JS? Как вы думаете, это может быть связано с защитой веб-страниц от автоматизации?

Спасибо! Matt

...