Селен:Селен: Прокрутка до конца страницы
Я новичок в WebDriverJS. Я пробовал этот подход в Java.
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++;
}
, но я перед проблемой в webdriverjs в то время как итерация цикла.
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();
В моем коде я зашиты для цикла не перебирать до 50 раз, и я хочу, чтобы бросить/разорвать петлю, когда высота прокрутки достигается до конца. В этом подходе я хочу удалить жесткий код, например, java-code, потому что Я не знаю, сколько раз повторять итерацию для других приложений, чей свиток поддерживается динамически увеличивающимся. Например, Facebook приложение, Yahoo News ...
Вы можете проверить этот URL: 'https: // in.yahoo.com /'. и мой вопрос в том, что я просто хочу разбить цикл, когда он достигнет конца, используя 'webdriverjs.', какой URL, который вы проверили, содержит' div scroll'. – Yash
@Yash, он работает с https://in.yahoo.com/. Ваш вопрос заключается в том, как прокручивать вниз до нижней части веб-страницы, когда высота прокрутки динамически возрастает, что в точности соответствует этому примеру с 'webdriverjs'. Я добавил еще один пример, который прокручивается, пока высота больше не увеличивается в течение определенного времени. –
Можете ли вы проверить, что код выдает ошибку? ScriptTimeoutError: асинхронный тайм-аут сценария: результат не принимался за 0 секунд каждый раз во время работы. – Yash