2016-09-05 69 views
1

大家好,如何在使用Java的硒WebDriver中按CTRL + T和CTRL + TAB?

我的項目之一,我需要打開一個新的標籤和 之間的導航選項卡爲同我需要知道我怎麼能按CTRL + 牛逼CTRL + TAB使用Java的Selenium Webdriver。

請讓我知道我該怎麼做。謝謝你... !!!

我用下面的:

的Firefox版本: 48.0.2

Java版本: 1.8

硒webdriver的版本: 3.0.0

操作系統:個視窗10

我嘗試下面的代碼,但它似乎並不奏效:

import org.openqa.selenium.By; 
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class Handling_Tabs { 

    public static void main(String[] args) { 
     System.setProperty("webdriver.gecko.driver","C:\\Eclipse\\Drivers\\geckodriver.exe"); 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("http://www.google.com/"); 
     System.out.println(driver.getTitle()); 
     driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL+"t"); 
     driver.get("http://www.bing.com/"); 
     System.out.println(driver.getTitle()); 
     driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL+"\t"); 
     System.out.println(driver.getTitle());  
    } 
} 

回答

0

您可以使用動作類按Ctrl + 噸CTRL + TAB。我修改如下圖所示

@Test 
public void OpeningNewTab(){ 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.google.com/"); 
    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
    System.out.println(driver.getTitle()); 
    Actions act = new Actions(driver); 
    act.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).build().perform(); 
    driver.get("http://www.bing.com/"); 
    System.out.println(driver.getTitle()); 
    act.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).build().perform(); 
    driver.get("http://www.yahoo.com/"); 
    System.out.println(driver.getTitle()); 
    driver.close(); 
    driver.quit(); 

} 
+0

上面的代碼是不是爲我工作的例子。它對你有用嗎? –

+0

是的。我已經測試過,然後把它放在這裏。你得到的錯誤是什麼?請在此粘貼爲評論。您可以在中間步驟中引入Thread.sleep()或WebDriverWait以引入一些等待時間。 –

+0

我得到org.openqa.selenium.UnsupportedCommandException –

-1

可以使用機器人類,以及簡單地導入

import java.awt.AWTException; 
import java.awt.Robot; 
import java.awt.event.InputEvent; 
import java.awt.event.KeyEvent; 

public class Keyboard { 

    public static void main(String[] args) { 

      try { 
        Robot robot = new Robot(); 

     // Simulate a mouse click 
        robot.mousePress(InputEvent.BUTTON1_MASK); 
        robot.mouseRelease(InputEvent.BUTTON1_MASK); 

     // ctrl + T & ctrl TAB 

       robot.keyPress(KeyEvent.VK_CONTROL); 
       robot.keyPress(KeyEvent.VK_T); 

       // CTRL+T is now pressed 

       robot.keyRelease(KeyEvent.VK_T); 
       robot.keyRelease(KeyEvent.VK_CONTROL); 

      } catch (AWTException e) { 
        e.printStackTrace(); 
      } 
     } 
+0

使用上面的代碼,我無法按CTRL + T –

+0

@VishvambruthJT讓一些等待,並再次檢查其工作正常。 –

+0

我可以使用下面的代碼打開新選項卡,但無法在新選項卡上打開URL如何將控件移動到新選項卡:嘗試Robot robot = new Robot(); // CTRL + T現在被按下 robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_T); // Release按CTRL + T robot.keyRelease(KeyEvent.VK_T); robot.keyRelease(KeyEvent。VK_CONTROL); (AWTException e){ \t \t e.printStackTrace(); (30,TimeUnit.SECONDS); \t driver.get(「http://www.bing.com/」); –

相關問題