qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

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

           在web自動(dòng)化測(cè)試中點(diǎn)擊一個(gè)鏈接然后彈出新窗口是比較司空見(jiàn)慣的事情。

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

          window.html
          <html>
          <head><title>Popup Window</title></head>
          <body>
          <a id = "soso" href = http://www.soso.com/ target = "_blank">click me</a>
          </body>
          </html>

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

          require 'rubygems'
          require 'pp'
          require 'selenium-webdriver'
          dr = Selenium::WebDriver.for :firefox
          frame_file = 'file:///'.concat File.expand_path(File.join(File.dirname(__FILE__), 'window.html'))
          dr.navigate.to frame_file
          dr.find_element(:id =>'soso').click
          # 所有的window handles
          hs = dr.window_handles
          # 當(dāng)前的window handle
          ch = dr.window_handle
          pp hs
          pp ch
          hs.each do |h|
          unless h == ch
          dr.switch_to.window(h)
          p dr.find_element(:id => 's_input')
          end
          end

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

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

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

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

          相關(guān)文章

          Selenium webdriver系列教程(5)—如何定位frame中的元素

          Selenium webdriver系列教程(7)—如何處理alert和confirm

          posted on 2013-09-23 10:50 順其自然EVO 閱讀(452) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): selenium and watir webdrivers 自動(dòng)化測(cè)試學(xué)習(xí)

          <2013年9月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 绥阳县| 海晏县| 隆回县| 合川市| 达拉特旗| 夏河县| 昌图县| 凉城县| 延吉市| 卢湾区| 酒泉市| 沁阳市| 永寿县| 金川县| 陵水| 江阴市| 峨边| 南京市| 乌兰县| 沿河| 凌海市| 揭阳市| 确山县| 龙州县| 化隆| 太康县| 乌拉特前旗| 崇州市| 普定县| 石景山区| 江达县| 习水县| 全椒县| 博爱县| 通河县| 南阳市| 临武县| 鹿邑县| 平舆县| 南开区| 大同县|