You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.NET中使用Selenium打开Chrome新标签页?已尝试方法无效

解决Chrome新标签页无法打开的问题

以下是几种可靠的实现方式,替代你之前尝试的SendKeys和Actions方法:

方法1:执行JavaScript打开新标签页(最推荐)

通过JavaScript直接调用window.open,不受页面焦点限制,兼容性强:

((IJavaScriptExecutor)driver).ExecuteScript("window.open('about:blank','_blank');");

执行后会直接创建一个空白新标签页,你可以后续通过driver.SwitchTo().Window(driver.WindowHandles.Last())切换到新标签页进行操作。

方法2:修复Actions类的使用逻辑

之前的Actions方法失效,大概率是页面元素未获取焦点。先确保body元素被点击激活,再执行快捷键操作:

IWebElement body = driver.FindElement(By.TagName("body"));
body.Click(); // 先点击body获取页面焦点
Actions act = new Actions(driver);
act.KeyDown(Keys.Control).SendKeys("t").KeyUp(Keys.Control).Build().Perform();

如果是无头模式运行Chrome,需要额外添加启动参数确保快捷键生效:

ChromeOptions options = new ChromeOptions();
options.AddArgument("--headless=new");
options.AddArgument("--disable-gpu");
options.AddArgument("--start-maximized");
IWebDriver driver = new ChromeDriver(options);

方法3:使用Chrome DevTools协议创建新标签页

适合需要更精细控制标签页的场景,通过DevTools协议直接创建并激活新标签:

var devTools = driver as IDevTools;
var session = devTools.CreateDevToolsSession();
// 创建新标签页
var newTabCommand = new Target.CreateTargetCommandSettings
{
    Url = "about:blank",
    NewWindow = false,
    Background = false
};
var targetResult = session.SendCommand(newTabCommand);
// 激活新标签页
session.SendCommand(new Target.ActivateTargetCommandSettings { TargetId = targetResult.TargetId });
// 切换到新标签页的句柄
driver.SwitchTo().Window(driver.WindowHandles.Last());

内容的提问来源于stack exchange,提问作者Durga Kumawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:05:10