webdriver - wählen Sie popup mit getWindowHandles()

Ich versuche zu wechseln, Fokus auf popup erscheint aber getWindowHandles().size() ist die Rückgabe nur 1 Fenster.

bestimmen, wenn ich wechseln können, um popup? oder popup wird nicht ein neues windows-in meinem Fall

ist hier ein Teil des Codes:

String parentWindowHandlerP = driver.getWindowHandle(); //save ID parent window
String subWindowHandlerP = null;

    //action to call popup
    (new WebDriverWait(driver, 5)).until(ExpectedConditions.elementToBeClickable(By.id("pt1:pt_region0:2:pt1:ilov1::lovIconId"))).click();

    Set<String> handlesP = driver.getWindowHandles(); //get all windows
    Iterator<String> iteratorP = handlesP.iterator();
    while (iteratorP.hasNext()) {
        subWindowHandlerP = iteratorP.next();
    }
    //popup operations     
    driver.findElement(By.id("pt1:pt_region0:2:pt1:t1:_afrFltrc6::content")).sendKeys(Keys.RETURN);
    driver.findElement(By.id("pt1:pt_region0:2:pt1:ilov1_afrLovDialogId::ok")).click();

    driver.switchTo().window(parentWindowHandlerP); //back na parent window
Ist es ein alert anstatt ein popup?
Ich habe versucht zu tun-Treiber.switchTo().alert (), aber in der error-stacktrace-ich habe diese Meldung ist nicht vorhanden.
Da du sagst, dass die Anzahl der windows bleibt als 1, kann ich nicht sehen, dass ein Wechsel zu windows ist zu helfen... Ist dein popup ein iframe vielleicht?
Nein, es ist kein iframe. Ich denke, die einzige Lösung ist das einfügen thread.sleep() (vielleicht schlechte Lösung, aber es ist die einzige Sache, die ich tun kann)
Ich versuche es mal mit webdriverwaits so viel wie möglich, manchmal muss ich thread.sleep() als gut. "Whatever works" ist manchmal die einzige Lösung.

InformationsquelleAutor user2231591 | 2014-03-03

Schreibe einen Kommentar