<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    輕松自動化---selenium-webdriver(python) (七)---定位iframe

    本節知識點:

    多層框架或窗口的定位:

    • switch_to_frame()
    • switch_to_window()

    智能等待:

    • implicitly_wait()

     

     

    對于一個現代的web應用,經常會出現框架(frame) 或窗口(window)的應用,這也就給我們的定位帶來了一個難題。

    有時候我們定位一個元素,定位器沒有問題,但一直定位不了,這時候就要檢查這個元素是否在一個frame中,seelnium  webdriver 提供了一個switch_to_frame方法,可以很輕松的來解決這個問題。

     

    frame.html

    復制代碼
    <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>frame</title> <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js "></script> <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" /> <script type="text/javascript"> $(document).ready(function(){ }); </script> </head> <body> <div class="row-fluid"> <div class="span10 well"> <h3>frame</h3> <iframe id="f1" src="inner.html" width="800", height="600"></iframe> </div> </div> </body> <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> </html>
    復制代碼

    inner.html

    復制代碼
    <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>inner</title> </head> <body> <div class="row-fluid"> <div class="span6 well"> <h3>inner</h3> <iframe id="f2" src="http://www.baidu.com" width="700" height="500"></iframe> <a href="javascript:alert('watir-webdriver better than selenium webdriver;')">click</a> </div> </div> </body> </html>
    復制代碼

    frame.html 中嵌套inner.html ,兩個文件和我們的腳本文件放同一個目錄下:

     

    switch_to_frame()

    操作上面頁面,代碼如下:

    復制代碼
    #coding=utf-8 from selenium import webdriver import time import os  browser = webdriver.Firefox() file_path =  'file:///' + os.path.abspath('frame.html') browser.get(file_path)  browser.implicitly_wait(30) #先找到到ifrome1(id = f1) browser.switch_to_frame("f1") #再找到其下面的ifrome2(id =f2) browser.switch_to_frame("f2") 

    #下面就可以正常的操作元素了 browser.find_element_by_id("kw").send_keys("selenium") browser.find_element_by_id("su").click() time.sleep(3)
    browser.quit()
    復制代碼

     

     

    driver.switch_to_window()

     

    有可能嵌套的不是框架,而是窗口,還有真對窗口的方法:switch_to_window

    用法與switch_to_frame 相同:

    driver.switch_to_window("windowName")

     

     

    implicitly_wait()

     

    細心的話會發現上面的例子中有browser.implicitly_wait(30),它的用法應該比time.sleep() 更智能,后者只能選擇一個固定的時間的等待,前者可以在一個時間范圍內智能的等待。

    文檔解釋:

    selenium.webdriver.remote.webdriver.implicitly_wait(time_to_wait)

    隱式地等待一個無素被發現或一個命令完成;這個方法每次會話只需要調用一次

    time_to_wait: 等待時間

    用法:

    driver.implicitly_wait(30)

     

    --------------------------

    學習更多selenium 內容:

     「功能測試自動化」匯總

    分類: selenium

    posted on 2014-03-20 14:32 順其自然EVO 閱讀(3042) 評論(0)  編輯  收藏 所屬分類: 自動化測試python

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 黄色成人免费网站| 亚洲欧洲精品一区二区三区| 男女做羞羞的事视频免费观看无遮挡 | 亚洲国产精品综合久久久| 亚洲一区精品伊人久久伊人| 成年女人视频网站免费m| 91精品免费高清在线| 免费无码H肉动漫在线观看麻豆| 国内成人精品亚洲日本语音| 亚洲人成激情在线播放| 亚洲国产高清在线| 国产精品亚洲精品日韩已满| 亚洲国产成人乱码精品女人久久久不卡 | 久久99精品视免费看| 成人免费无码H在线观看不卡| 国产成人精品久久亚洲高清不卡| 久久夜色精品国产噜噜亚洲a| 亚洲乱码在线视频| 亚洲精品免费在线| 亚洲美女一区二区三区| 亚洲资源在线观看| 大胆亚洲人体视频| 51精品视频免费国产专区| 国产精品99精品久久免费| 大地影院MV在线观看视频免费| igao激情在线视频免费| 免费很黄无遮挡的视频毛片| 曰批免费视频播放在线看片二| 最新亚洲人成无码网站| 国产亚洲午夜精品| 四虎一区二区成人免费影院网址| 色屁屁在线观看视频免费| 日韩电影免费在线观看网址| 一级特黄特色的免费大片视频 | 国产乱色精品成人免费视频| 国产美女精品久久久久久久免费 | 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲AV无码资源在线观看| 亚洲av无码专区在线观看下载| 18禁亚洲深夜福利人口| 窝窝影视午夜看片免费|