一尘不染

如何在selenium的新标签页中滚动

selenium

我通过单击c#中的selenium元素来打开一个新选项卡。更改为新标签后,我想滚动,但是出现超时错误。

我收到超时消息,没有滚动。

这是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);");

阅读 286

收藏
2020-06-26

共1个答案

一尘不染

您可以分两步执行此操作,移至新的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)");

完成后,您可以关闭选项卡。

2020-06-26