首页 > 解决方案 > 使用 Javascript 在 Chrome Selenium 中打开新标签时,浏览器滑到底部

问题描述

我正在使用 C# 中的 Selenium 在 Chrome 中运行一项任务。第一个/主要选项卡在整个任务中保持打开状态。然后我打开一个新标签。做一些事情。然后关闭该选项卡。每次执行任务时,这可能会重复 15-20 次。

我尝试了几个选项来打开一个新选项卡,包括 SendKeys 和其他在这里找到的“解决方案”,但是将下面的 JavaScript 注入 webdriver 是唯一真正适合我的选项。

var d=document,a=d.createElement('a');a.target='_blank';a.href='';a.innerHTML='.';d.body.appendChild(a);return a;

问题是,每次我打开一个新选项卡时,第一个/主选项卡都会滚动到底部,然后打开新选项卡。每次滚动到底部时,第一个/主选项卡中的网页都会加载更多内容。由于几个与问题无关的原因,这是有问题的。

我的问题是,为什么这个 JS 代码会滚动到第一个/主选项卡的底部,我该如何停止它?

标签: javascriptseleniumselenium-chromedriver

解决方案


使用javascript直接点击'a'标签,不要返回a。

var d=document,a=d.createElement('a');a.target='_blank';a.href='';a.innerHTML='.';d.body.appendChild(a);a.click();

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("var d=document,a=d.createElement('a');a.target='_blank';a.href='';a.innerHTML='.';d.body.appendChild(a);a.click();");

推荐阅读