如何按"ALT + T"在带有Java的Selenium webdriver中.我想通过按它来切换标签 [英] How to press "ALT+T" in Selenium webdriver with java. I want to switch tabs by pressing it

查看:141
本文介绍了如何按"ALT + T"在带有Java的Selenium webdriver中.我想通过按它来切换标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用了下面的代码,但是它抛出一个错误:无法专注于元素".请帮忙.

I have used below code, but it throws an error saying "Cannot focus on element". Please help.

String selectAll = Keys.chord(Keys.ALT,"T");
driver.findElement(By.tagName("html")).sendKeys(selectAll);

推荐答案

您可以使用操作将Alt + Tab之类的快捷键发送给驱动程序,而无需使用元素.

You can send ShortcutKeys like Alt + Tab to driver without using element by using Actions.

public static void sendShortCut(WebDriver driver) {
    Actions action = new Actions(driver);
     action.sendKeys(Keys.chord(Keys.CONTROL, "T")).build().perform();
}

但是您的目标是切换到窗口/选项卡.在Selenium中,窗口和选项卡都相同.

However your goal was to switch to the window/tab.In Selenium both window and tab are same.

我为您提供了两种解决方案,这些解决方案从功能名称上可以自我解释

I've provided you two solutions which is self explanatory from the name of the functions

public static void switchToWindowByTitle(WebDriver driver, String title) {
    Set<String> Handles = driver.getWindowHandles();
    for (String handle : Handles) {
        driver.switchTo().window(handle);
        String drivertitle = driver.getTitle().trim();
        if (drivertitle.equals(title)) {
            break;
        }
    }
}

//Index is 0 based
public static void switchToWindowByIndex(WebDriver driver, int index) {
    Set<String> handles = driver.getWindowHandles();
    if (handles.size() > index) {
        String handle = handles.toArray()[index].toString();
        driver.switchTo().window(handle);
    }
}

这篇关于如何按"ALT + T"在带有Java的Selenium webdriver中.我想通过按它来切换标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆