Как прокрутить вкладку Новая в селене - PullRequest
1 голос
/ 15 января 2020

Я открыл новую вкладку, щелкнув что-то в селене в c #. Я хочу прокрутить после перехода на новую вкладку, но я получаю сообщение об ошибке тайм-аута.

Я получаю сообщение о тайм-ауте и не прокручиваю.

это c# код.

Используется Chrome 79

Chrome опция

options.AddArguments("handlesAlerts=false");
            options.AddArguments("--disable-infobars");
            options.AddArguments("--no-sandbox");
            options.AddArguments("--disable-background-networking");
            options.AddArguments("--disable-component-extensions-with-background-pages");
            options.AddArguments("--dns-prefetch-disable");
            options.AddArguments("--ignore-certificate-errors");
            options.AddArguments("--ignore-certificate-errors-spki-list");
            options.AddArguments("--ignore-ssl-errors");
            options.AddArguments("--allow-running-insecure-content");
            options.AddArguments("lang=ko_KR");


if (this.driver.WindowHandles.Count > 1)
{
this.driver.SwitchTo().Window(this.driver.WindowHandles[1]);
}
Utils.sleep(3000);
((IJavaScriptExecutor)this.driver).ExecuteScript("window.scrollBy(0,500);");

Ответы [ 2 ]

0 голосов
/ 16 января 2020

вы можете сделать это за два шага, перейти к новому tab и сделать там scroll.

ArrayList<String> AllTabs = new ArrayList<String> (driver.getWindowHandles()); 
driver.switchTo().window(AllTabs.get(1));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0 , window.innerHeight)");

И вы можете закрыть вкладку после того, как вы закончите sh.

0 голосов
/ 15 января 2020

Пожалуйста, используйте код ниже, он будет работать нормально

 //Open link in new tab
 Actions act = new Actions(driver);
 act.KeyDown(Keys.Control).MoveToElement(elementToopenInNewTab).Click().Perform();
 // Switch to new tab
 driver.SwitchTo().Window(driver.WindowHandles.Last());

 //Scroll down in new tab

  IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
  js.ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");

 //Move to first tab again 
  driver.SwitchTo().Window(driver.WindowHandles.First());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...