В моем предыдущем заданном вопросе у меня была проблема с задержкой.Предыдущий вопрос: задержка с 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 не меняется, только содержимое.