2016-09-05 2 views
1

Привет,Как нажимать CTRL + T и CTRL + TAB в селене WebDriver с помощью Java?

Для одного моего проекта мне нужно, чтобы открыть новую вкладку и перемещаться между язычки для того же я должен знать, как я могу нажать CTRL + T и CTRL + TAB в Selenium Webdriver с использованием Java.

Пожалуйста, дайте мне знать, как я могу сделать то же самое. Спасибо ... !!!

Я использую ниже:

Firefox Версия: 48.0.2

Java Версия: 1,8

Селен WebDriver Версия: 3.0.0

ОС: для Windows 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 на новой вкладке, как перемещать элемент управления на новую вкладку: try { Robot robot = new Robot(); // CTRL + T теперь нажата robot.keyPress (KeyEvent.VK_CONTROL); robot.keyPress (KeyEvent.VK_T); // Release press CTRL + T robot.keyRelease (KeyEvent.VK_T); robot.keyRelease (KeyEvent.VK_CONTROL); \t} catch (AWTException e) { \t e.printStackTrace(); \t} driver.manage(). Timeouts(). ImplicitlyWait (30, TimeUnit.SECONDS); \t driver.get ("http://www.bing.com/"); –

Смежные вопросы