2013-05-29 40 views
1

使用硒web驅動程序我試圖把區域名稱在文本框中在新的彈出窗口並點擊保存按鈕。我使用下面的腳本,這Selenim webdriver:無法發送密鑰在新的彈出窗口

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(); 

通過這樣做,我能打開新的彈出屏幕進入該地區,但是,我無法發送鍵[區域名稱],並保存text.Even我當我運行測試時沒有收到失敗的報告。

您能否請helpme

+1

切換到彈出窗口後,您是否可以與任何元素進行交互?或者它是否與txtRegionName元素有關? –

回答

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(); 

希望它能幫助!

相關問題