Example usage for org.openqa.selenium WebDriver getWindowHandles

List of usage examples for org.openqa.selenium WebDriver getWindowHandles

Introduction

In this page you can find the example usage for org.openqa.selenium WebDriver getWindowHandles.

Prototype

Set<String> getWindowHandles();

Source Link

Document

Return a set of window handles which can be used to iterate over all open windows of this WebDriver instance by passing them to #switchTo() .

Usage

From source file:qsp.popups.ActiTimewinhand.java

public static void main(String[] args) throws Throwable {
    WebDriver driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    driver.get("http://localhost/login.do");
    driver.findElement(By.id("licenseLink")).click();

    driver.findElement(By.xpath("//a[.='actiTIME Inc.']")).click();
    Set<String> allwh = driver.getWindowHandles();
    System.out.println(allwh.size());
    for (String aw : allwh) {
        driver.switchTo().window(aw);/*from   w  ww  .ja v a  2 s  .  c  om*/
        System.out.println(driver.switchTo().window(aw));
        driver.close();
    }

}

From source file:ru.stqa.selenium.factory.DefaultDriverAlivenessChecker.java

License:Apache License

@Override
public boolean isAlive(WebDriver driver) {
    try {/* w ww. jav a  2  s.c  o m*/
        return driver.getWindowHandles().size() > 0;
    } catch (UnhandledAlertException ex) {
        return true;
    } catch (WebDriverException ex) {
        return false;
    }
}

From source file:ru.stqa.selenium.wrapper.EventFiringWrapperTest.java

License:Apache License

@Test
public void canFireEventForGetWindowHandles() {
    final WebDriver mockedDriver = mock(WebDriver.class);
    final Set<String> handles = new HashSet<String>();
    handles.add("windows1");
    final WebDriverListener mockedListener = mock(WebDriverListener.class);
    when(mockedDriver.getWindowHandles()).thenReturn(handles);

    EventFiringWrapper wrapper = new EventFiringWrapper(mockedDriver);
    wrapper.addListener(mockedListener);
    final WebDriver driver = wrapper.getDriver();

    Set<String> result = driver.getWindowHandles();

    assertEquals(result, handles);// www . jav  a 2 s .co  m

    verify(mockedDriver, times(1)).getWindowHandles();
    verify(mockedListener, times(1)).beforeGetWindowHandles(mockedDriver);
    verify(mockedListener, times(1)).afterGetWindowHandles(mockedDriver, handles);
}

From source file:selenium.webapps.termbrowser.TestTermBrowserTestCase.java

License:Open Source License

public String getPopupWindowBodyText(WebDriver driver) {
    String parentWindowHandler = driver.getWindowHandle();
    String subWindowHandler = null;
    Set<String> handles = driver.getWindowHandles();
    Iterator<String> iterator = handles.iterator();
    while (iterator.hasNext()) {
        subWindowHandler = iterator.next();
    }//  w w  w  .  java 2s .com
    driver.switchTo().window(subWindowHandler);
    String bodyText = driver.findElement(By.tagName("body")).getText();
    driver.switchTo().window(parentWindowHandler);
    return bodyText;
}

From source file:uk.co.blackpepper.common.driver.AbstractDriverTest.java

License:Apache License

@Test
public void isVisibleInAnotherWindowWhenVisibleReturnsTrue() throws MalformedURLException {
    WebDriver webDriver = mock(WebDriver.class);
    when(webDriver.getWindowHandles()).thenReturn(singleton("y"));
    whenSwitchToWindow(webDriver, "y").thenReturn(webDriver);
    AbstractDriver<?> driver = new FakeDriver(newDriverConfiguration(webDriver), "x",
            newExpectedCondition(true));

    assertThat(driver.isVisibleInAnotherWindow(), is(true));
}

From source file:uk.co.blackpepper.common.driver.AbstractDriverTest.java

License:Apache License

@Test
public void isVisibleInAnotherWindowWhenNotVisibleReturnsFalse() throws MalformedURLException {
    WebDriver webDriver = mock(WebDriver.class);
    when(webDriver.getWindowHandles()).thenReturn(singleton("y"));
    whenSwitchToWindow(webDriver, "y").thenReturn(webDriver);
    AbstractDriver<?> driver = new FakeDriver(newDriverConfiguration(webDriver), "x",
            newExpectedCondition(false), 0);

    assertThat(driver.isVisibleInAnotherWindow(), is(false));
}

From source file:utils.WebDriverUtils.java

public static Set<String> getWindowHandles(WebDriver webDriver) {
    return webDriver.getWindowHandles();
}

From source file:wsattacker.sso.openid.attacker.evaluation.attack.KeyConfusionAttack.java

License:Open Source License

@Attack(number = 1)
private AttackResult performSecondVariantOfKeyConfusionAttack() {
    OpenIdServerConfiguration.getAttackerInstance().setInterceptIdPResponse(true);
    OpenIdServerConfiguration.getAttackerInstance().setMethodGet(false);

    OpenIdServerConfiguration.getAnalyzerInstance().setInterceptIdPResponse(true);
    OpenIdServerConfiguration.getAnalyzerInstance().setMethodGet(false);

    OpenIdServerConfiguration.getAttackerInstance().setPerformAttack(true);

    String victimIdp = OpenIdServerConfiguration.getAnalyzerInstance().getXrdsConfiguration().getBaseUrl();

    AttackParameter opEndpointParameter = keeper.getParameter("openid.op_endpoint");
    opEndpointParameter.setAttackValueUsedForSignatureComputation(true);
    opEndpointParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    opEndpointParameter.setAttackMethod(HttpMethod.GET);
    opEndpointParameter.setAttackValue(victimIdp);

    String victimIdentity = OpenIdServerConfiguration.getAnalyzerInstance().getXrdsConfiguration()
            .getIdentity();/*  w ww  . jav a 2s.  c  o  m*/

    AttackParameter claimedIdParameter = keeper.getParameter("openid.claimed_id");
    claimedIdParameter.setAttackValueUsedForSignatureComputation(true);
    claimedIdParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    claimedIdParameter.setAttackMethod(HttpMethod.GET);
    claimedIdParameter.setAttackValue(victimIdentity);

    AttackParameter identityParameter = keeper.getParameter("openid.identity");
    identityParameter.setAttackValueUsedForSignatureComputation(true);
    identityParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    identityParameter.setAttackMethod(HttpMethod.GET);
    identityParameter.setAttackValue(victimIdentity);

    // include modified parameter in signature
    AttackParameter sigParameter = keeper.getParameter("openid.sig");
    sigParameter.setValidMethod(HttpMethod.DO_NOT_SEND);
    sigParameter.setAttackMethod(HttpMethod.GET);

    // copy log entries before login
    List<RequestLogEntry> logEntriesBeforeLogin = new ArrayList<>(RequestLogger.getInstance().getEntryList());

    LoginResult loginResultAttacker = serviceProvider.login(ServiceProvider.User.ATTACKER);

    WebDriver driver = SeleniumBrowser.getWebDriver();
    JavascriptExecutor jse = (JavascriptExecutor) driver;
    String url = serviceProvider.getUrl();
    jse.executeScript("var win = window.open('" + url + "');");

    List<String> windowhandles = new ArrayList<>(driver.getWindowHandles());
    driver.switchTo().window(windowhandles.get(1));

    LoginResult loginResultVictim = serviceProvider.login(ServiceProvider.User.VICTIM);

    driver.switchTo().window(windowhandles.get(0));

    List<WebElement> links = driver.findElements(By.tagName("a"));
    links.get(1).click();

    /* determines the log entries of the current login procedure:
       logEntries = logEntriesAfterLogin - logEntriesBeforeLogin
       (subtraction of sets) */
    List<RequestLogEntry> logEntriesAfterLogin = RequestLogger.getInstance().getEntryList();
    List<RequestLogEntry> logEntries = (List<RequestLogEntry>) CollectionUtils.subtract(logEntriesAfterLogin,
            logEntriesBeforeLogin);

    // invert order of log - should be chronological
    Collections.reverse(logEntries);

    loginResultAttacker.setScreenshot(SeleniumBrowser.takeScreenshot());
    loginResultAttacker.setLogEntries(logEntries);

    boolean success = serviceProvider.determineAuthenticatedUser(driver.getPageSource(),
            driver.getCurrentUrl()) == User.VICTIM;
    Result result = success ? Result.SUCCESS : Result.FAILURE;
    Interpretation interpretation = success ? Interpretation.CRITICAL : Interpretation.PREVENTED;

    if (loginResultAttacker.hasDirectVerification()) {
        result = Result.NOT_PERFORMABLE;
        interpretation = Interpretation.NEUTRAL;
    }

    assert isSignatureValid(loginResultAttacker) : "Signature is not valid!";

    // close second window
    driver.switchTo().window(windowhandles.get(1)).close();
    driver.switchTo().window(windowhandles.get(0));

    return new AttackResult("Second Variant of Key Confusion", loginResultAttacker, result, interpretation);
}

From source file:wsattacker.sso.openid.attacker.evaluation.SeleniumBrowser.java

License:Open Source License

public static void loginVictimToWordpress() {
    WebDriver driver = getWebDriver();

    JavascriptExecutor jse = (JavascriptExecutor) driver;
    jse.executeScript("var win = window.open('https://de.wordpress.com/wp-login.php');");

    List<String> windowhandles = new ArrayList<>(driver.getWindowHandles());
    driver.switchTo().window(windowhandles.get(1));

    WebElement element = driver.findElement(By.id("user_login"));
    element.clear();//from  ww  w  .j av a  2  s  .  c om
    element.sendKeys("victim123456789");

    element = driver.findElement(By.id("user_pass"));
    element.clear();
    element.sendKeys("Victim1234!");

    element.submit();

    /*windowhandles.forEach((windowHandle) -> {
    System.out.println("windowHandle: " + windowHandle);
    });*/

    driver.switchTo().window(windowhandles.get(0));
}