提问者:小点点

Selenium ChromeDriver C#-如何发送快捷键到浏览器


我知道我不能用chromedriver组合键,但是可以用JavaScript作为替代。 下面的示例导航到Google.com并打开一个新的窗口选项卡。

IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://google.com");
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("window.open()"); // Open new browser tab like CTRL + t do

却想不出如何发送这些键盘组合……

CTRL + SHIFT + i
CTRL + SHIFT + m

共1个答案

匿名用户

由于可以使用.exceutescript运行任意JavaScript,因此可以使用JavaScript解决方案将按键发送到Web页面:是否可以通过编程方式模拟按键事件?

这只适用于网页本身处理的快捷方式。 由于您给出的shotcut示例实际上是浏览器快捷方式,因此JavaScript解决方案无法工作。

相反,您必须将键盘按下直接发送到Web浏览器。 这与操作系统相关,但在Windows下,您可以使用SendMessage将键盘按键发送到另一个进程:在C#中使用sendkey函数将键盘按键发送到浏览器