は私がウェブサイトは、私がloop4()を実行しようとしていますddlLevel3Phantomjsはvarの値を更新しますか?
var page = require('webpage').create();
page.onConsoleMessage = function(str) {
console.log(str);
}
var z=0;
var z_l=0;
var op1='#ddlDivision'
var op2='#ddlLevel1'
var op3='#ddlLevel2'
var op4='#ddlLevel3'
function selectOption(selector, optionIndex) {
page.evaluate(function(selector, optionIndex){
var op4='#ddlLevel3'
var sel = document.querySelector(selector);
var sel4 = document.querySelector(op4);
sel.selectedIndex = optionIndex;
var event = document.createEvent("UIEvents"); // See update below
event.initUIEvent("change", true, false);
sel.dispatchEvent(event);
this.dispatchEvent(event);
z_l=sel4.length;
console.log("len: "sel4.length+" "+z_l);
}, selector, optionIndex);
}
page.open(...{
function loop4() {
selectOption(op4,z);
window.setTimeout(function() {
go();
z++;
if (z < z_l) {
loop4();
}
}, 3000);
}
loop4();
});
ドロップダウンリストが含まれている以下のphantomjsプログラムを持っています。しかし、の値が0からに変更されていません。
インラインconsole.log( "len:" sel4.length + "" + z_l);ここに値が適切です。
しかし、そのないバックloop4()で(Z < z_l)場合で反射され、常に残ります。 私は何が間違っていますか?
申し訳ありませんが、変数はあまり意味がありませんので、デバッグは難しいです。あなたはおそらく少しリファクタリングできますか?また、完全な最小限の例を公開してください、 'page.open ...'は役に立ちません。 – Vaviloff
@Vaviloff selectOption()が呼び出されるたびに、z_lの値を更新したいと思っていました。 – abhinandanbr