2012-11-22 50 views
1

我使用Selenium webdriver自動執行SharePoint應用程序。通過Selenium webdriver共享點模式窗口處理

點擊一個鏈接添加新項目到列表中,它會打開窗口/框架(不確定),排序模式彈出窗口。在執行該腳本時,會發出無法定位元素的錯誤。在下圖中,當我用driver.getwindowhandles()找到所有的窗口句柄時,它只是給出了一個窗口作爲父窗口。而不是子窗口。相同的代碼能夠通過selenium IDE運行,但不能通過JUnit運行。請幫助我如何處理這件事。在這一點上是孩子的彈出窗口的文本字段的id

driver.findElement(By.xpath("//div[@id='zz9_V4QuickLaunchMenu']/div/ul/li[4]/a/span/span")).click(); 
driver.findElement(By.id("idHomePageNewLink")).click(); 
Thread.sleep(5000); 

//提示錯誤。

driver.findElement(By.id("ctl00_m_g_99918f84_a256_44b4_819e_982688a9f15c_ctl00_ctl05_ctl00_ctl00_ctl00_ctl04_ctl00_ctl00_UrlFieldUrl")).clear();   
driver.findElement(By.id("ctl00_m_g_99918f84_a256_44b4_819e_982688a9f15c_ctl00_ctl05_ctl00_ctl00_ctl00_ctl04_ctl00_ctl00_UrlFieldUrl")).sendKeys("http://efgh"); 
System.out.println("Done!!!!"); 
+1

請爲了更加清晰起見而顯示html代碼段? –

+0

睡眠不是確保彈出窗口出現的正確方法。當你看到執行過程時,你看到模態彈出窗口嗎?這可能是彈出窗口在5秒內沒有出現,因此也是錯誤。 –

+0

它顯示了我們需要輸入值的窗口中的彈出窗口。它在那裏等待並給出錯誤。 – user1844541

回答

0

在SharePoint for New item窗體中,您不需要切換窗口。由於Selenium將所有內容都視爲一個頁面,並且代碼被自動檢測到。

即將到來的主題,新建窗體窗口包含內部IFrames其中包含文本框/其他數據消費對象。

通過切換幀進行嘗試。一般在新項目窗口中會有2個IFrame窗口...檢查新項目窗體的HTML代碼。

Driver.SwitchTo().Frame(1); 
Console.WriteLine(Driver.Title); 

所有最好的...希望這有助於:-)

+0

嗨Anurag,感謝您的答覆,我已經試過這個。但不幸的是,它不起作用,因爲它沒有采取這種框架。它只給出主窗口的標題而不是子窗口:( – user1844541

0

我也有過類似的問題,這是我使用的硒的webdriver提供的SwitchTo().Frame方法解決。使用以下代碼將焦點設置爲SharePoint模式文件上載對話框:

driver.SwitchTo().Frame(driver.FindElement(By.ClassName("ms-dlgFrame"))); 
相關問題