Flo*_* K. 5 .net c# selenium automated-tests selenium-chromedriver
如何使用Selenium发送Chrome快捷方式?我的意思是像Ctrl+ S,Ctrl+ T或Ctrl+ P这样的快捷方式与WebElements无关。我在那里读了很多类似的问题,但是没有建议的解决方案对我有用。
假设我想在浏览器中打开一个新标签(Ctrl+ T),我尝试了以下所有代码,但均未成功:
“标准”方式:
IWebElement body = myDriver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Control + "t");
Run Code Online (Sandbox Code Playgroud)动作方式:
Actions action = new Actions(myDriver);
action.SendKeys(Keys.Control + "t").Build().Perform();
Run Code Online (Sandbox Code Playgroud)ChromeDriver方法1:
if(myDriver is ChromeDriver)
{
ChromeDriver chromeDriver = myDriver as ChromeDriver;
chromeDriver.Keyboard.SendKeys(Keys.Control + "t");
}
Run Code Online (Sandbox Code Playgroud)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");
Run Code Online (Sandbox Code Playgroud)请注意,我提到的第一种方法适用于Chrome以外的其他WebDriver。我用 :
我的驱动程序的初始化实际上是非常基本的:
ChromeOptions options = new ChromeOptions();
this.myDriver = new ChromeDriver(/* my path */, options);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
看来是有Chromium 问题了。您不能将组合键与 一起使用chromedriver,但您仍然可以使用JavaScript以下替代方法:
IJavaScriptExecutor js = myDriver as IJavaScriptExecutor;
js.ExecuteScript("window.open()"); // Open new browser tab like `CTRL + t` do
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2043 次 |
| 最近记录: |