Selenium webdriver:无法发送密钥在新的弹出窗口中

时间:2013-05-29 06:36:08

标签: selenium-webdriver

使用selenium web-driver我试图将区域名称放在文本框的新弹出屏幕中,然后单击“保存”按钮。我使用下面的脚本

String mainWindowHandle1=driver.getWindowHandle();

driver.switchTo().window(mainWindowHandle1 );

driver.findElement(By.id("MainContent_imgAddRegion")).click();
Thread.sleep(5000);

java.util.Set<String> s1 = driver.getWindowHandles();

Iterator<String> ite1 = s1.iterator();
while(ite1.hasNext())
{
    String popupHandle=ite1.next().toString();
    if(!popupHandle.contains(mainWindowHandle1))
    {
        driver.switchTo().window(popupHandle).findElement(By.id("txtRegionName")).sendKeys("South Region");
        Thread.sleep(3000);
        driver.findElement(By.id("txtRegionName")).sendKeys("South Region");
        Thread.sleep(1000);
        driver.findElement(By.id("btnSave")).click(); 

通过这样做,我可以打开新的弹出屏幕进入该区域,但是,我无法发送密钥[区域名称]并保存文本。即使我在运行测试时没有收到任何失败的报告。

1 个答案:

答案 0 :(得分:0)

这可能是由于iFrames的存在。 查看HTML代码并检查您尝试发送密钥的文本字段和保存按钮是否包含在某种iFrame中。 如果是这样,您将需要执行以下操作:

driver.switchTo().defaultContent();
driver.switchTo().frame("framename");
driver.findElement(By.id("txtRegionName")).sendKeys("South Region");
driver.findElement(By.id("btnSave")).click();

希望它有所帮助!