Ich habe diesen Code und läuft in Ordnung, aber ich möchte es in einer Schleife laufen, so dass es zählen wird, wie viele Elemente es in class="socal"
hat und dann jeden Link testen.Einen Test erstellen, der in einer Schleife läuft
module.exports = {
'Unitel Fitness - click' : function (browser) {
browser
.url('http://m.unitel.ao/fit/')
.execute('scrollIntoView(alignToBottom)')
.waitForElementVisible('.socal>span:nth-child(1) a', 6000)
.moveToElement('.socal>span:nth-child(1) a', 3, 3)
.pause(6000)
.click(".socal>span:nth-child(1) a")
.pause(6000)
.keys(['\uE006'])
.window_handles(function (result) {
var handle = result.value[1];
browser.switchWindow(handle);
browser.pause(1000);
//browser.assert.urlContains('facebook');
browser.closeWindow();
})
.end();
}
};
Ich aktualisierte den Code für diese aber immer noch nicht genau das, was ich will. Das Ergebnis ist das Folgende: (Ich versuchte schon mehr Zeit geben)
Anzahl der Links: 4 i val vor ausführen: 1 i val vor ausführen: 2 i val vor ausführen: 3 i val vor ausführen: 4? Zeitüberschreitung beim Warten auf Element < .socal> span: nth-child ("+ i +") a> ist für 8000 Millisekunden vorhanden. - „sichtbar“ erwartet, aber bekam: nicht
module.exports = {
'Social links' : function (browser) {
browser
.url('http://m.unitel.ao/fit/')
.execute(function(){
return document.querySelectorAll(".socal>span").length;
},
function(links) {
total_links = links.value;
console.log("Number of links: " + total_links);
for (var i = 1; i <= total_links; i++) {
console.log("i val before execute: " + i);
browser.execute('scrollIntoView(alignToBottom)');
//browser.waitForElementVisible('.socal>span:nth-child("+ i +") a', 8000);
//call back function
browser.waitForElementVisible('.socal>span:nth-child("+ i +") a', 5000, function() {
browser.moveToElement('.socal>span:nth-child("+ i +") a', 3, 3);
browser.pause(8000);
browser.click(".socal>span:nth-child("+ i +") a");
browser.pause(6000);
browser.keys(['\uE006']);
browser.window_handles(function (result) {
var handle = result.value[1];
browser.switchWindow(handle);
browser.pause(8000);
//browser.assert.urlContains('facebook');
browser.closeWindow();
})
});
}
})
// .end();
}
};
Was haben Sie versucht? – Aaron
Hallo Aaron, ich habe versucht, eine for-Schleife, wie zum Beispiel für (var i = 0; i <= socal.length; i ++) – Rita
Danke Rita. Ich weiß kein Typoskript, daher kann ich Ihre Frage nicht beantworten, aber ich kann sagen, dass dies wahrscheinlich eine Anfängerfrage ist. Daher würde ich Ihnen empfehlen, das zu bearbeiten, was Sie in Ihrer Antwort versucht haben. Andernfalls können Personen, die Ihre Frage beantworten können, dies nur widerwillig tun, wenn Sie nicht zeigen, dass Sie es versucht haben. (Die Begründung dahinter ist, dass Sie zuerst lernen sollten, die Sprache zu benutzen, und wenn Sie Antwort auf jedes kleine Problem erhalten, ohne vorher zu recherchieren, können Sie es vielleicht nie richtig lernen) – Aaron