Расширение Chrome обновляет только последний элемент в цикле - PullRequest
0 голосов
/ 01 ноября 2018

У нас есть онлайн-табель, который мы должны заполнять каждый период оплаты. Я создаю расширения 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);
  }
...