Selen:Selen: Blättern Sie bis Ende der Seite
ich WebDriverJS neu bin. Ich habe diesen Ansatz in Java ausprobiert.
Long repaeted = 0l, scrollHeight = 0l, returnHeight = 0l;
while(true){
if (repaeted == 0) {
returnHeight = (Long) jse.executeScript("var scroll =document.documentElement.scrollHeight;window.scrollTo(0, scroll); return scroll;");
System.out.println("Height : "+scrollHeight +"\t Chnage : "+returnHeight+ "\t Repeated : "+repaeted);
scrollHeight = returnHeight;
}else {
returnHeight = (Long) jse.executeScript("var scroll = document.documentElement.scrollHeight;window.scrollTo(0, scroll); return scroll;");
System.out.println("Height : "+scrollHeight +"\t Chnage : "+returnHeight+ "\t Repeated : "+repaeted);
if (scrollHeight.intValue() == returnHeight.intValue()) {
System.out.println("Break.."+ returnHeight);
break;
} else { scrollHeight = returnHeight; }
}
repaeted++;
}
aber ich bin vor Problem in webdriverjs während der Schleife iteriert.
var webdriver = require('..'),
By = webdriver.By,
until = webdriver.until;
// make sure chromedriver can be found on your system PATH
var driver = new webdriver.Builder()
.forBrowser('chrome')
.withCapabilities(webdriver.Capabilities.chrome())
.build();
driver.get('https://in.yahoo.com/').then(function(){
var window = new webdriver.WebDriver.Window(driver);
window.maximize();
driver.manage().timeouts().implicitlyWait(1000 * 3);
})
.then(function(){
console.log('Entered');
var check = 0, count = 0
for(var i = 0; i< 50; i++){
//driver.sleep(1000 * 2);
driver.executeScript('var dynamicscroll = document.documentElement.scrollHeight;window.scrollTo(0, dynamicscroll);return dynamicscroll;').then(function(height){
console.log('Check : '+check+' Height : '+height +' Repeated : '+(count++));
if(check === 0 || check !== height){console.log('continue'); check = height; }
else { console.log('break'); i = 100; }
});
}
})
.then(null, function(err) {
console.error("An error was thrown! By Promise..." + err);
});
driver.quit();
In meinem Code ich fest einprogrammiert haben für Schleife bis 50-mal zu wiederholen, und ich möchte die Schleife beenden/brechen, wenn die Scroll-Höhe bis zum Ende erreicht ist. In diesem Ansatz möchte ich Hardcode wie Java-Code entfernen, weil Ich weiß nicht, wie oft für andere Anwendungen, deren Scroll dynamisch weiter erhöht wird zu iterieren. zum Beispiel Facebook-Anwendung, Yahoo News ...
Können Sie mit dieser URL überprüfen: 'https: // in.yahoo.com /'. und meine Frage ist, ich möchte nur die Schleife zu brechen, wenn es zu Ende mit 'webdriverjs.' kommt, welche URL, die Sie überprüft haben enthält' div scroll'. – Yash
@Yash, es funktioniert mit https://in.yahoo.com/. Ihre Frage ist, wie man bis zum Ende einer Webseite blättert, wenn die Scrollhöhe dynamisch ansteigt, was genau das ist, was dieses Beispiel mit 'webdriverjs' macht. Ich fügte ein anderes Beispiel hinzu, das scrollt, bis die Höhe nicht mehr während einer bestimmten Zeit ansteigt. –
Können Sie überprüfen, dass Sie Code ist Fehler "ScriptTimeoutError: asynchrones Skript-Timeout: Ergebnis wurde nicht in 0 Sekunden" jedes Mal während der Ausführung erhalten. – Yash