2017-04-26 54 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();"); 
相關問題