【问题标题】:selecting checkboxes in a popup window using selenium webdriver使用 selenium webdriver 在弹出窗口中选择复选框
【发布时间】:2016-08-25 13:00:46
【问题描述】:

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

火狐v33.1 硒 v2.25

source code

我尝试了以下代码,但没有成功:

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

【问题讨论】:

  • “没用”是什么意思?你有什么例外吗?哪个命令不起作用?
  • 您的意思是当您单击 ID 为 FieldView_ctl17_MultiSelect1_InputText 的元素时,会打开一个带有复选框的新弹出窗口,并且您想选择其中一个复选框并关闭此弹出窗口并返回主窗口?对

标签: selenium


【解决方案1】:

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

//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 

【讨论】: