задержка с заданным временем и для цикла + еще 1 задержка - PullRequest
0 голосов
/ 21 ноября 2018

В моем предыдущем заданном вопросе у меня была проблема с задержкой.Предыдущий вопрос: задержка с settimeout и для цикла

Моя цель - получить данные с веб-сайта, и я использую консоль в IE.Содержание изменяется, когда пользователь нажимает на элемент с тэгом «что-то»

. Этот код отлично работает, если я хочу только нажать на элементы через:

for (var x = 1; x < 5; x++) {
    (function(i) {
        setTimeout(function() {
    document.getElementsByTagName("something")[i].click();    }, i * 1000)
  }(x))
}

Но в моемПотому что мне нужно также получить контент с сайта после нажатия, поэтому я добавил новую строку после нажатия:

myarray=[];
        for (var x = 1; x < 5; x++) {
            (function(i) {
                setTimeout(function() {
            document.getElementsByTagName("something")[i].click();
    var x=theelement.innerHTML;
    myarray.push(x);
    }, i * 1000)
          }(x))
        }

Так что с массивом я могу получить содержимое после нажатия.Проблема в том, что после нажатия на сайт загружается ~ 1-2 секунды, и мой приведенный выше код пытается сразу получить элемент и присвоить его значение innerHTML переменной x.

Я пытался сделать«вложенная задержка» внутри задержки, но не работает, потому что они оцениваются отдельно.Поэтому я попытался решить эту проблему следующим образом:

outer settime with delay 1000ms
   element.click()
      inner settime with delay 3000ms
          x=element.innerhtml
      innersettime close tag
outer settime close tag

В этом случае внутреннее и внешнее установочные значения вычисляются раздельно, а не как хорошо известные функции sleep (), как в других языках.Целью является задержка между функциями «щелкнуть» и «получить содержимое элемента».И эти 2 функции должны повторяться 30 раз.И между этими 30 разами также должна быть задержка.

link1.click();
3sec pause;   -->this is the pause between "click" and "get content"
x=elem1.innerHTML;
myarray.push(x);
1sec pause;
link2.click();
3secpause;  --> this is the pause between each loop (there is 30link on the site)
x=elem2.innerHTML;
myarray.push(x);
until link30.click()....

URL не меняется, только содержимое.

...