2017-09-12 50 views
0

我想選擇狀態形成一個新的窗口彈出窗口。點擊選擇狀態按鈕後,它會打開對話框頁面,但我看不到該頁面的HTML。所以不知道如何與硒對話框頁面進行交互。看不到彈出窗口的HTML如何從硒進行交互

注意:我已切換到新窗口,但無法從此處繼續。

HTML看起來像這樣..

enter image description here

點擊選擇狀態按鈕下面的對話框頁面打開後。

Select Status Dialog

,但我可以看到對話框頁面的HTML,所以如何與它進行交互形式的硒?

更新-14/09/17

當我選擇狀態單擊它調用下面的網址。在單獨的選項卡中打開該URL並能夠看到HTML。

http://xxx.xxx.xxx.int/tasks/status.aspx?CurrFilters=OPEN

enter image description here

試圖選擇像下面從新窗戶值...

public void SelectStatus() 
    { 
     _SelectStatus.Click(); 
     Browser.Switch_to_child_page(); 
     _container.FindElement(By.CssSelector("input[onclick^='SelectAll']")).Click(); 
    } 

得到下面的錯誤。

測試 'x.RegressionSuite.TestCases.xTest.TC_x' 失敗: OpenQA.Selenium.StaleElementReferenceException:元素不再 有效

+0

新窗口內是否有框架? –

+0

彈出窗口是一個單獨的瀏覽器實例。你有沒有試過看看啓動頁面的HTML?也許你可以在彈出窗口中獲得頁面的URL,並直接導航到它來訪問HTML。 – JeffC

+0

我不認爲你可以分享這個網址嗎? – JeffC

回答

0

它看起來像新的窗口彈出。你可以切換到新窗口。然後與它進行交互。

// Store the current window handle 
String winHandleBefore = driver.getWindowHandle(); 

// Perform the click operation that opens new window 

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

//select the checkbox 
driver.findElement(By.xpath("xpath for checkbox")).click(); 

//click on select button 
driver.findElement(By.xpath("xpath for submit")).click(); 

// Close the new window, if that window no more required 
driver.close(); 

// Switch back to original browser (first window) 
driver.switchTo().window(winHandleBefore); 
+0

我正在移動到新窗口,但問題是如何選擇複選框,因爲我無法看到HTML? –

+0

請在新窗口中使用頁面源代碼或開發人員工具獲取新窗口的html。 – Murthi

+0

不知道如何獲取頁面源代碼,因爲我無法在頁面上單擊鼠標右鍵。嘗試了不同的瀏覽器。如果我右鍵單擊它只有兩個選項... 1.移動2.關閉。 –