У нас есть онлайн-табель, который мы должны заполнять каждый период оплаты. Я создаю расширения Chrome, которые делают все это автоматически.
Код в основном получает элементы на странице, нажимает на кнопки и заполняет поля ввода. С каждым днем связана кнопка, которая открывает виджет диалога, где вы можете ввести свои часы. Вот HTML-код для виджета.
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-front ui-dialog-buttons ui-draggable ui-resizable" tabindex="-1" role="dialog" aria-describedby="editDialog" aria-labelledby="ui-id-21" style="position: absolute; height: auto; width: 750px; top: 191px; left: 372px; display: block; z-index: 101;">
Я добавил разрывы в коде, и он открывает виджет каждого дня, вводит часы и нажимает кнопку «принять и закрыть».
Но после того, как все сделано, часы каждого дня появляются в последний день. Итак, если мой последний рабочий день в период оплаты был в пятницу, все 10 дней в последнюю пятницу. И даже если я добавлю код для ожидания, вы никогда не увидите всплывающий виджет.
Я очень новичок в этом, и я предполагаю, что есть что-то очевидное, что я упускаю.
Ниже приведен код, который выполняет работу ...
for (var i = 0; i < message.Checks.length; i++) {
try {
var elt = new cb(message.Checks[i].id, message.Checks[i].check, message.Checks[i].week, message.Checks[i].pos);
if (elt.check == true) {
console.log(`#week${elt.week} > div > div > div.timesheet-title-siblings > div:nth-child(${elt.id}) > div.timesheet-items > div > div.actions > button > span.ui-button-icon-primary.ui-icon.ui-icon-plus`);
var plus = document.querySelector(`#week${elt.week} > div > div > div.timesheet-title-siblings > div:nth-child(${elt.pos}) > div.timesheet-items > div > div.actions > button > span.ui-button-icon-primary.ui-icon.ui-icon-plus`);
plus.click();
var fromTime = document.querySelector("#itemStartTime");
var toTime = document.querySelector("#itemEndTime");
var ws = document.querySelector("#itemWorkStatus");
var activity = document.querySelector("#itemActivity");
var tCode = document.querySelector("#itemTransactionCode");
// var subAct = $("#itemSubactivity");
var assign = document.querySelector("#itemAssignment");
var accButt = document.querySelector("body > div:nth-child(9) > div.ui-dialog-buttonpane.ui-widget-content.ui-helper-clearfix > div > button.add.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only > span");
var acClose = document.querySelector("body > div:nth-child(9) > div.ui-dialog-buttonpane.ui-widget-content.ui-helper-clearfix > div > button.accept.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only > span");
fromTime.value = message.MainFrom;
toTime.value = message.MainTo;
ws.value = "WK";
activity.value = "INTAS";
assign.value = "10572";
if (elt.pos == 1) {
tCode.value = 4;
} else {
tCode.value = 1;
}
accButt.click();
fromTime.value = message.OTBFrom;
toTime.value = message.OTBTo;
ws.value = "OTB";
activity.value = "INTAS";
// subAct[0].value = "LINE";
assign.value = "80888";
tCode.value = 61;
acClose.click();
}
} catch (err) {
console.log(err);
}