电竞比分网-中国电竞赛事及体育赛事平台

分享

Selenium-webdriver系列教程(六)————如何捕獲彈出窗口

 看見就非常 2015-09-18


在web自動化測試中點擊一個鏈接然后彈出新窗口是比較司空見慣的事情。

webdriver中處理彈出窗口跟處理frame差不多,以下面的html代碼為例

window.html

<html>

    <head><title>Popup Window</title></head>

    <body>

        <a id = "soso"  target = "_blank">click me</a>

    </body>

</html>

下面的代碼演示了如何去捕獲彈出窗口

require 'selenium-webdriver'

dr = Selenium::WebDriver.for :ie

window_file = 'file:///'+File.expand_path(File.join(File.dirname(__FILE__),'window.html'))

dr.navigate.to window_file

dr.find_element(:id=>'soso').click

#所有的window handles

hs = dr.window_handles

puts hs

#當前的window handle

ch = dr.window_handle

puts ch

hs.each do |h|
    
    unless h == ch
        
            dr.switch_to.window(h)
            
            dr.find_element(:id =>'s_input')
        
    end

end

捕獲或者說定位彈出窗口的關(guān)鍵在于獲得彈出窗口的handle。

在上面的代碼里,使用了windowhandles方法獲取所有彈出的瀏覽器窗口的句柄,然后使用windowhandle方法來獲取當前瀏覽器窗口的句柄,將這兩個值的差值就是新彈出窗口的句柄。

在獲取新彈出窗口的句柄后,使用switchto.window(newwindow_handle)方法,將新窗口的句柄作為參數(shù)傳入既可捕獲到新窗口了。

如果想回到以前的窗口定位元素,那么再調(diào)用1次switch_to.window方法,傳入之前窗口的句柄既可達到目的。

   

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多