Chrome扩展程序仅更新循环中的最后一项

时间:2018-10-31 21:07:54

标签: javascript loops google-chrome-extension dialog content-script

我们有一个在线时间表,需要填写每个付款期。我正在创建可自动完成所有操作的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);
  }

0 个答案:

没有答案