Ich kann names
Array innerhalb driver.executeScript
nicht zugreifen. Bitte schlagen Sie eine Lösung vor;brauche Hilfe, um den Variablenbereich zu lösen Problem
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++;
});
}
wie geschrieben, ist dieses Problem nicht möglich. Ich könnte verstehen, wenn 'Namen [j]' undefiniert sind, weil 'j 'am Ende 2 wäre, bevor irgendein asynchroner Code in executeScript Callback ausgeführt wurde (vorausgesetzt, dass asynchron ist), aber Sie sagen, der Fehler ist, dass' Namen' ist undefined ... das ist einfach nicht möglich –
abgeordnet. Das scheint Unsinn zu sein. Ich schlage vor, dass Sie versuchen, diesen Fehler in einem JSFiddle neu zu erstellen - ich kann einfach nicht glauben, dass der Fehler, den Sie melden, wirklich auftritt, wenn Sie ihn beschreiben. – AmericanUmlaut
Ich kann es nicht auf jsfiddle reproduzieren, weil es Chrome-Web-Treiber verwendet. Ich habe sogar cloud9 ide probiert, aber das hat auch nicht funktioniert. – Triven