Hallo, ich benutze Mokka und Knoten js, und versuche Selen Webdriver arbeiten zu bekommen. Die App ist ein SPA. Alles, was ich tun möchte, ist einen bestimmten Tab zu bekommen, und klicken Sie darauf. Ich habe die HTML in den Test OK geladen. hier ist ein AusschnittSelenium.Webdriver versucht, eine Registerkarte Text zu finden vaue
<div id="Tabs">
<ul>
<li> <span> one </span></li>
<li> <span> two </span></li>
...
<li> <span> six </span></li>
</ul>
</div>
In meinem test.js ich diese haben ...
describe("MYHtml",function(){
var driver;
var tabs;
driver = new webdriver.Builder()
.forBrowser('firefox')
.build();
driver.get("file:///home/myhtml.html");
test.after(function() {
driver.quit();
});
before(function(done){
driver.findElement(By.id("Tabs")).then(function(e){
e.findElements(By.tagName("li")).then(function(b){
console.log("before got tabs length " + b.length);
tabs=b;
done();
});
});
});
test.it("we have some tabs",function(done){
assert.strictEqual(tabs.length,6);
console.log("we have tabs " + tabs.length);
done();
});
test.it("can find a tab name",function(done){
var span;
for(var i=0;i<tabs.length;i++){
tabs[i].findElements(By.tagName("span"))
.then(function(span){
console.log("Field??" + span.getText());
//return span;
done();
});
}
});)};
Er übergibt den "wir haben einige Tabs" aber nicht "eine Registerkarte Name finden können" mit diesem Fehler
1 failing
1) MYHtml can find tab name: TypeError: span.getText is not a function
ich versuche, das li zu finden - zum Beispiel mit der Spanne text = 2 so kann ich darauf klicken.
Danke für die Antwort Peter, leider bekomme ich immer noch den TypeError: tabs [i] .findElements (...). GetText ist keine Funktion – sferret
Es gibt ein paar Probleme mit dieser Antwort. Ein Hauptproblem besteht darin, dass es keine Vorkehrung gibt, um Mocha anzuzeigen, wenn dieser asynchrone Code vollständig ausgeführt ist (entweder durch Aufrufen von "done" oder durch Zurückgeben eines Versprechens). – Louis
Ich habe die done() zurück zum Code, es wurde versehentlich entfernt. Offensichtlich kehrt der @ sferret zu dem ursprünglichen Test zurück, um zu entscheiden, was er von einer Reihe von Spannen erwartet, da das Original andeutete, dass ein einzelner Wert ('kann einen Tabnamen finden') benötigt wird. – PeterS