Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Selenium WebDriver在后台打开chrome新选项卡窗口?_C#_.net_Winforms_Selenium_Selenium Webdriver - Fatal编程技术网

C# 如何使用Selenium WebDriver在后台打开chrome新选项卡窗口?

C# 如何使用Selenium WebDriver在后台打开chrome新选项卡窗口?,c#,.net,winforms,selenium,selenium-webdriver,C#,.net,Winforms,Selenium,Selenium Webdriver,如果我使用的是just Process Start,它将打开一个新的浏览器chrome窗口,但会将焦点放在该窗口上。 我想打开一个新的chrome标签,但不关注它,标签将在我现在所在的当前窗口后面的背景上 只有单击浏览器图标,我才会看到打开的选项卡,并可以单击该选项卡以关注它 在Form1 top中,我做到了: using OpenQA.Selenium; using OpenQA.Selenium.Chrome; 建造商: OpenBroswerTab(); 及 但同样有了这段代码,我仍然

如果我使用的是just Process Start,它将打开一个新的浏览器chrome窗口,但会将焦点放在该窗口上。 我想打开一个新的chrome标签,但不关注它,标签将在我现在所在的当前窗口后面的背景上

只有单击浏览器图标,我才会看到打开的选项卡,并可以单击该选项卡以关注它

在Form1 top中,我做到了:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
建造商:

OpenBroswerTab();

但同样有了这段代码,我仍然可以看到chrome打开的新选项卡/窗口。
新打开的选项卡/窗口应在后台最小化打开,这样我就看不到它打开。

您可以使用窗口手柄控制选项卡:

如果您打开了一个选项卡,并且打开了另一个选项卡,则可以立即调用该选项卡以返回到以前打开的选项卡。如果您打开了许多选项卡,并且只想回到第一个选项卡,那么您应该能够将“myDriver.WindowHandles.Count-1”简单地替换为“0”


不确定是否可以隐藏它,但如果您的测试实际上不需要Chrome,您可以查看PhantomJS驱动程序,它将在控制台窗口中执行所有操作,并且有一个选项可以隐藏它。@TyCobb他不需要隐藏浏览器。他需要Chrome在后台运行,而不是在新标签打开时从其他应用程序窃取焦点。
private void OpenBroswerTab()
        {
            IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl("http://stackoverflow.com/");

            IWebElement body = driver.FindElement(By.TagName("body"));
            body.SendKeys(OpenQA.Selenium.Keys.Control.ToString() + 't');

            //driver.Quit();
        }
ChromeDriver myDriver = new ChromeDriver();
myDriver.SwitchTo().Window(myDriver.WindowHandles[myDriver.WindowHandles.Count - 1]);