代码无法正常执行,但可以在调试器中使用

时间:2019-05-29 10:48:07

标签: javascript firefox firefox-addon

我的工作之一是检查其他人上载到官方网站/网络工具的收据。大多数时候,我已经亲自检查过收据,因此实际上不需要对Webtool进行另一次检查。为了在特定位置发表评论并更改下拉字段,我仍然必须手工经过收据的

我想使该过程自动化,并试图将一个可以为我完成此任务的firefox插件组合在一起,以便我也可以与一些同事共享它。

我基本上对这样的东西没有经验,但是当我一步一步地单击它时,我已经设法将一些可以在调试模式下工作的东西放在一起,但是在正常执行时它是行不通的。

正常执行时,代码会转到for条件的最后一个元素,并且无法打开来自Webtool的接收器。

该网络工具相当复杂,我无法编辑其代码。问题似乎在于代码的执行速度,因此我尝试使用一些.setTimeout命令来降低它的速度。

由于缺乏经验,我可能还会犯一些更基本的错误。

{
function belegebearbeiten(){

for(i = 0; i < 5; i++) {

    zeit = 20000 * i;

    path = "belege:bTabs-199172769:sv-VoucherTabelleAusgaben199172769:j_idt1115:" + i + ":j_idt1117";

    command1 = "document.getElementsByName(";

    command2 = ")[0].click()";

    belegnummer = command1 + "'" + path + "'" + command2;

    window.setTimeout (function() {
        browser.tabs.executeScript({
          code: belegnummer
          });
      }, 0 + zeit);

    window.setTimeout (function() {
      browser.tabs.executeScript({
          file: "/content_scripts/fahrtkosten.js"
          });
        }, 10000 + zeit);

    window.setTimeout (function() {
      browser.tabs.executeScript({
      code: "document.getElementById(\"pageCreator:btnClos\").click();"
        });
      }, 20000 + zeit);
  }

  i = 0;
}

browser.browserAction.onClicked.addListener(belegebearbeiten);

}

我希望代码通过单击接收方编号来打开接收方,等待网站完成加载并执行fahrtkosten.js中的脚本,从而在新页面上留下评论,并选择正确的下拉选项并保存输入。然后,我希望它关闭收据,保存后会重新加载,并在下一个收据重复这些步骤。

我实际上得到的是收据未加载错误 “ TypeError:this._tabPool为空”, “已删除不安全属性。元素:svg。属性:xmlns。”, 和“错误:document.getElementById(...)为空”。

正如我所说:它在调试模式下可以由我控制其执行。

0 个答案:

没有答案