使用selenium webdriver在弹出窗口中选中复选框

时间:2016-08-25 13:00:47

标签: selenium

我有一个文本框,点击此文本框后会打开一个弹出窗口。此弹出窗口包含复选框。 我想点击上面的文本框并将焦点移动到弹出窗口,选择弹出窗口中的复选框并将焦点移回主窗口。 弹出窗口的源代码图像附在图像选项卡中。

Firefox v33.1 Selenium v​​2.25

source code

我尝试使用以下代码,但它没有用:

driver.findElement(By.id("FieldView_ctl17_MultiSelect1_InputText")).click();
driver.switchTo().activeElement();
driver.findElements(By.id("checkbox0")).click();

1 个答案:

答案 0 :(得分:0)

您需要在找到复选框之前打开打开的弹出窗口,如下所示: -

//First store parent window to switch back
String parentWindow = driver.getWindowHandle();

//Perform the click operation that opens new window
driver.findElement(By.id("FieldView_ctl17_MultiSelect1_InputText")).click();

//Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
    if(!winHandle.equals(parentWindow)) {
        driver.switchTo().window(winHandle);
    }
}

//Now find checkbox and click 
driver.findElements(By.id("checkbox0")).click();

//Now close opened popup window 
driver.close();

//Switch back to parent window 
driver.switchTo().window(parentWindow);

//Continue with parent window