如何在一个浏览器中创建不同的会话(选项卡)并使用 IInputSimulator 复制选项卡

问题描述 投票:0回答:1

我在 WPF 桌面(.net core)应用程序中使用 ChromeDriver 和 Selenium,我想在 1 个 Chrome 浏览器中打开不同的选项卡(会话)为此,我使用 IInputSimulator(虚拟键盘)和快捷键 Ctrl+Shift+m 但是它没有按照给定的 TabCount 打开。

您有任何解决方案或替代方法来实现相同的目的吗?

这是我的代码片段:

for (var i = 0; i < TabCount - 1; i++)
{
                try
                {
                    _logger.Info($"Tab changed: i={i}, tab count:{TabCount}");
                    _driver.SwitchTo().Window(mainHandler);

                    Thread.Sleep(2500);
                    _inputSimulator.Keyboard.ModifiedKeyStroke(new[] { VirtualKeyCode.CONTROL, VirtualKeyCode.SHIFT }, new[] { VirtualKeyCode.VK_X });

                    _driver.SwitchTo().Window(_driver.WindowHandles.Last());
                    if (_driver.Url != Constant.TabUrls.Google_URL)
                    {
                        _driver.Navigate().GoToUrl(Constant.TabUrls.Google_URL);
                        Thread.Sleep(2500);
                    }
                }
                catch (Exception ex)
                {
                    _logger.Error(ex.Message, ex);
                }
                _logger.Info("Go back to main handler");
}
c# asp.net-core selenium-chromedriver openvpn inputsimulator
1个回答
0
投票

根据tab-window-shortcuts,没有选项卡复制的快捷方式。请改用以下内容:

driver.SwitchTo().NewWindow(WindowType.Tab);
driver.Navigate().GoToUrl(targetUrl);
© www.soinside.com 2019 - 2024. All rights reserved.