Я работаю с некоторой автоматизацией в 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