c# - 如何在硒的新标签中滚动
问题描述
我通过单击 c# 中的 selenium 中的某些内容打开了一个新选项卡。我想在切换到新标签后滚动,但出现超时错误。
我收到一条超时消息并且没有滚动。
这是 C# 代码。
二手铬 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);");
解决方案
请使用下面的代码它会正常工作
//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());
推荐阅读
- c++ - Arduino C++ 取消引用#define 或 const int?
- python - 从 11 月开始的日期列
- c - 编辑二进制文件 C 中的记录
- amazon-web-services - 如何将默认 VPC 导入 CloudFormation 堆栈并使用 AWS CDK 重新创建它?
- google-chrome - chrome:如何设置一次性打印?
- tensorflow - 是否有用于 tensorflow C++ 推理的分析器?
- python - 为什么即使我更改了全局变量,变量也不会改变?
- azure - 我想使用 Azure 中的资源管理器将集群部署到现有 Vnet
- c# - 在c#中处理设备插槽的最佳方法是什么
- css - 在 reactstrap 标签中设置 material-ui 图标