Я использую метод расширения для вызова взаимодействий на новой вкладке браузера:
public static void DoInNewTab(this ChromeDriver driver, Action<ChromeDriver> action)
{
var currentHandle = driver.CurrentWindowHandle;
// DOES NOT WORK:
//driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");
driver.ExecuteScript("window.open()"); // HERE
Thread.Sleep(2000);
driver.SwitchTo().Window(driver.WindowHandles.Last());
action.Invoke(driver);
driver.Close(); // HERE
driver.SwitchTo().Window(currentHandle);
}
Работает как чудо, за исключением того, что окно браузера продолжает активироваться, выходит на передний план и получает фокус.Отлаживать это немного неуклюже, поскольку точки останова, очевидно, активируют окно IDE, но, насколько я вижу, окно браузера активируется в строках, помеченных HERE
.
Как я могу предотвратить активацию окна и убедиться, что оно остается в фоновом режиме?