2017-04-26 56 views
5
static void Main() 
{ 
    IWebDriver driver = new ChromeDriver(); 
    driver.Navigate().GoToUrl("http://google.com"); 
    IWebElement body = driver.FindElement(By.TagName("body")); 

    body.SendKeys(Keys.Control + "t"); 

} 

工作这是我试图用它来打开一个新的标签,它不工作,我没有得到任何错误没什么,司机打开谷歌代码这就是所有...... 我搜索了很多,发现许多教程甚至视频人们使用完全相同的代码,它适用于他们,但对我来说,它并没有,我不知道它...硒C#打开新标签页Ctrl + T无法与Chrome

我试图发送Keys.Shift +“T”到搜索领域,它的工作原理,它在该领域

我也尝试写

一个大写字母T
Actions act = new Actions(driver); 
act.KeyDown(Keys.Control).SendKeys("t").Perform(); 

而且它仍然无法正常工作,但是如果我将Keys.Control更改为Keys.Shift,它会写入,似乎没有任何问题涉及Keys.Control正在工作!

编辑:我试着用IE驱动运行代码,它在那里工作,它打开新标签,但它不会在Chrome上打开新标签页?

回答

0

试试这个

driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t"); 
driver.SwitchTo().Window(driver.WindowHandles.Last()); 
driver.Navigate().GoToUrl("http://www.google.com") 
+0

那其他奇怪的事情,我没有driver.WindowHandles.Last() – Darkbound

+2

添加 “使用System.Linq的;”用于访问Linq方法。 – Rushby

+0

试过了,仍然没有工作,只是什么也没有发生,无论我尝试使用Keys.Control它不工作,但Keys.Shift正在工作... – Darkbound

0

如果你对替代Keys.Control一个MAC,使用Keys.Command:

body.SendKeys(Keys.Command + "t"); 
+0

谢谢,但我不在Mac上 – Darkbound

+0

没有问题只是一个想法 - 你的代码看起来很合理。 – Rushby

3

感谢您的答案!我用JavaScript做到了。

((IJavaScriptExecutor)driver).ExecuteScript("window.open();"); 
相关问题