Robot Framework與Web界面自動化測試學習筆記:定位到新窗口


在頁面操作中,有時會需要打開新的窗口(新的網頁不在當前窗口顯示,而是在新的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,可能跟版本有關。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM