javascript - 使用 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 代码会滚动到第一个/主选项卡的底部,我该如何停止它?
解决方案
使用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();");
推荐阅读
- database - 将多个数据库数据同步到一个数据库中
- javascript - 如何使用 Javascript 在 Photoshop 中选择另一层内的层,并使其可见/不可见
- java - Java-17 - switch case - 应该删除未使用的方法参数
- javascript - Vercel - 无需推广的部署
- firebase - “Null”类型不是“List”类型的子类型
' 在类型转换中 - harbor - 是否可以在港口配置远程注册表端点健康检查间隔?
- google-sheets - 匹配 id 值并在 Google 表格中提取字符串
- javascript - 刷新页面总是重定向到基本 URL
- flutter - 在 Flutter 中的多个 Future 构建器中处理未来对象的正确方法
- php - SQLSTATE [42000]:语法错误或访问冲突:1068 定义了多个主键