在頁面操作中,有時會需要打開新的窗口(新的網頁不在當前窗口顯示,而是在新的tab頁顯示),
比如利用 window.open("newurl")
或者 <a href="newurl" target="_blank">新窗口</a>
這時候新的頁面都會在新窗口打開。
這樣我們可能就需要對新頁面中的內容進行檢查和定位。
但這樣前提是我們需要定位到該新的窗口。
比如我們用例中有這樣一個語句:
click button id=newWin
上面這個語句對應的button的click事件響應代碼中調用了 window.open("newurl") 打開一個新的窗口。
這時我們要想對這個新窗口頁面中信息進行檢查,必須要先定位到新窗口。
selenium2提供了 select window 關鍵字,該關鍵字會定位到新窗口,下面的操作都是圍繞該新窗口來進行的了。
關鍵是靠參數來標識新的窗口,有如下方法:
1) select window title=xxxx
其中xxx是新頁面的title屬性,這就要求新頁面必須有title屬性。
2)select window name=xxxx
這里的name是對應新窗口的name屬性值(針對javascript).
比如如果是利用 window.open("newurl","newwin");打開的新窗口,這里的newwin就是新頁面的name屬性。
或者<a href="newurl" target="newWindow" id="newlink">新窗口</a> 這里的newWindow就是新頁面的name屬性。
注意:需要注意的是,無論是用open方法或者在a設置name值, 如果再次點擊,則會在同樣的name窗口中打開。
即使是url不同,也會在相同窗口打開。 所以在指定時需要注意。
所以比較簡單的方式,就是為每個頁面設置自己的title屬性,這樣既簡單,又跟js無關,而且每個窗口有自己的title也是合理的和比較好的方式。
還有一點,在rf+selenium2的幫助中,還說明了select window可以通過設定url值來定位,但實際操作發現有問題,無法定位。這是個bug,可能跟版本有關。