2012-12-06 62 views
1

我的應用程序有一個管理員帳戶和測試已經內。硒 - 如何切換到正在提出了一個不同的(登錄)窗口?

此帳戶,然後對他們使用其登錄「常規」用戶超鏈接,例如:

一個http://dmplanning-stage.herokuapp.com/p/7Fimn1FRs1WZe5xmFTUA
兩個http://dmplanning-stage.herokuapp.com/p/FRs1WZe7Fimn15TUAxmF
http://dmplanning-stage.herokuapp.com/p/mFTUA7Fimn1FRs1WZe5x

這些鏈接的每個I運行時產生的測試套件和ID是不同的。

我創建了一個測試,以找到並單擊超鏈接,列出這些用戶和他們的登錄鏈接的網頁上。測試運行和硒使瀏覽器提出新的窗口,但我如何切換到它,所以我可以登錄並繼續?

爲了使其更具挑戰性的其他窗口有一個空頭銜,即

我可以得到程序員添加標題,但還需要時間。有沒有辦法識別和切換到另一個窗口?

回答

1

可以使用windowhandle切換到新窗口。 東西之類的..

Webdriver driver = new FirefoxDriver(); 
driver.get // Go to ur login page 
driver.click //Click on link which launches new window 
Set<String> s = driver.getwindowhandles() //this will return all open windows 
driver.switchTo.window(s[1]); //will switch to second window 

希望它可以幫助..

2

我假設你正在使用Selenium IDE。因此,從Selenium Reference


selectPopUp(WINDOWID)

簡化了選擇的彈出窗口 的過程(並沒有提供超出selectWindow功能() 已經提供)。

  • 如果WINDOWID或者未指定,或者指定 爲「空」,則選擇所述第一非頂部窗口。頂部窗口是 一個將由selectWindow()而不提供 WINDOWID來選擇。當多於一個彈出窗口在 中時,不應該使用這個。否則,根據窗口ID 按如下順序查找窗口:1)窗口的「名稱」,指定爲window.open();指定爲 ;窗口名稱爲 。 2)JavaScript變量這是一個 窗口的引用; 3)窗口的標題。這與selectWindow執行的查找操作相同。


selectWindow(WINDOWID)

選擇使用窗口 定位器的彈出窗口;一旦選擇了一個彈出窗口,所有命令都會轉到該窗口的 。要再次選擇主窗口,請使用null作爲目標。 窗口定位器提供了不同的方式來指定對象:按標題,按內部JavaScript「名稱」或JavaScript變量指定窗口 變量。

  • 冠軍 = 我的特別窗口:使用在標題欄出現 文本查找窗口。小心;兩個窗口可以共享相同的標題。如果發生了 ,這個定位器將會選擇一個。

  • 名稱 = mywindow的:查找 使用其內部的JavaScript 「name」 屬性的窗口。這是 第二個參數「windowName」傳遞給JavaScript方法的 window.open(url,windowName,windowFeatures,replaceFlag)(其中 Selenium攔截)。

  • 變種 = VARIABLENAME:某些彈出窗口是 無名(匿名),但與JavaScript變量 名稱在當前應用程序窗口相關聯,例如「window.foo = window.open(url);」。在這些情況下,您可以使用 「var = foo」打開窗口。

selectWindow將是理想的,如果你可以檢索打開新窗口的名稱。

如果您遇到問題搞清楚,你 要操縱一個窗口的名字,看看它通過識別通過截取window.open(因此 創建的窗口的 名稱硒日誌消息硒)。你會看到的消息像下面的 每因爲它是打開的窗口:

debug: window.open call intercepted; window ID (which you can use with selectWindow()) is "myNewWindow"

在某些情況下,硒將無法呼叫攔截 window.open(如果呼叫發生在「onLoad」事件期間或之前,例如 )。 (這是SEL-339的錯誤)在這些情況下,您可以使用空白(空白)URL像下面這樣通過使用Selenium openWindow命令來強制 Selenium注意打開窗口的名稱: openWindow(「」,「」 myFunnyWindow「)。

相關問題