names
配列driver.executeScript
にアクセスできません。解決策を提案してください。可変範囲の問題を解決するために助けが必要
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder().forBrowser('chrome').build();
var flow = webdriver.promise.controlFlow();
var names = ["name1", "name2"];
var len = names.length;
var j = 0
for (var i = 0; i < len; i++) {
flow.execute(function() {
console.log(names[j]); //this works fine.
driver.executeScript(function() {
//console.log(names[j]); //this gives errror [WebDriverError: unknown error: names is not defined]
//console.log('testing'); //this never logs
});
j++;
});
}
書かれているように、この問題は不可能です。 executeScriptコールバック内の非同期コードが実行される前に 'j'が2に終わるので、' names [j] 'が未定義であると理解できました(もちろん非同期であると仮定します)。定義されていない...それはちょうど不可能です –
Seconded。これはナンセンスのようです。 JSFiddleでこのエラーを再現することをお勧めします。あなたが報告しているエラーが実際に発生しているとは信じられません。 – AmericanUmlaut
クロムウェブドライバを使用しているため、jsfiddleで再現できません。私はクラウド9を試してみましたが、それもうまくいきません。 – Triven