![](/img/trans.png)
[英]Selenium ChromeDriver C# - How to Send Shortcut Keys To Browser
[英]Selenium ChromeDriver C# - How to send a shortcut browser
如何使用Selenium发送Chrome快捷方式? 我的意思是像Ctrl + S , Ctrl + T或Ctrl + P这样的快捷键,与WebElements无关。 我在那里读了很多类似的问题,但没有一个建议的解决方案适合我。
假设我想在浏览器上打开一个新选项卡( Ctrl + T ),我尝试了以下所有代码但没有成功:
“标准”方式:
IWebElement body = myDriver.FindElement(By.TagName("body")); body.SendKeys(Keys.Control + "t");
行动方式:
Actions action = new Actions(myDriver); action.SendKeys(Keys.Control + "t").Build().Perform();
ChromeDriver方式1:
if(myDriver is ChromeDriver) { ChromeDriver chromeDriver = myDriver as ChromeDriver; chromeDriver.Keyboard.SendKeys(Keys.Control + "t"); }
ChromeDriver方式2:
ChromeDriver chromeDriver = myDriver as ChromeDriver; chromeDriver.Keyboard.PressKey(Keys.Control); chromeDriver.Keyboard.PressKey("t"); chromeDriver.Keyboard.ReleaseKey(Keys.Control); chromeDriver.Keyboard.ReleaseKey("t");
请注意,我提到的第一种方式适用于其他WebDriver而不是Chrome。 我用 :
我的驱动程序的初始化是非常基本的:
ChromeOptions options = new ChromeOptions();
this.myDriver = new ChromeDriver(/* my path */, options);
有任何想法吗?
不幸的是, 此问题目前阻止了Chrome对selenium发送的Ctrl + T等快捷方式做出反应。
它似乎是Chromium
问题 。 您不能将键组合与chromedriver
一起chromedriver
,但您仍然可以使用JavaScript
作为替代:
IJavaScriptExecutor js = myDriver as IJavaScriptExecutor;
js.ExecuteScript("window.open()"); // Open new browser tab like `CTRL + t` do
我正在使用与Actions的组合键。 我多年来一直在使用这个代码示例,它适用于Chrome,Firefox和IE。
public void SelectAll()
{
(new Actions(yourDriverInstance)).SendKeys(Keys.Control).SendKeys("a").Perform();
}
我错过了什么吗???
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.