如何使用Java在Selenium WebDriver中按CTRL + T和CTRL + TAB?

如何使用Java在Selenium WebDriver中按CTRL + T和CTRL + TAB?

问题描述:

大家好,

对于我的项目之一,我需要打开一个新标签并在 相同的选项卡,我需要知道如何按 CTRL + T 和 使用Java的Selenium Webdriver中的 CTRL + TAB .

For one of my project I need to open a new tab and navigate between the tabs for the same I need to know how can I press CTRL+T and CTRL+TAB in Selenium Webdriver using Java.

请让我知道我该怎么做.谢谢... !!!

Please let me know how can I do the same.Thank You...!!!

我正在使用以下内容:

Firefox版本: 48.0.2

Java版本: 1.8

Selenium WebDriver版本: 3.0.0

操作系统: Windows 10

OS: 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());      
    }
}

您可以将Actions类用于 Ctrl + t CTRL + TAB .我修改了您的示例,如下所示

You can use Actions class for Ctrl+t or CTRL+TAB. I modified your example as shown below

@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();

}