亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium 2.0的由來及設(shè)計(jì)架構(gòu)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/2/7 15:43:22 ] 推薦標(biāo)簽:Selenium 開源 功能測試工具 WebDriver

命令處理器的執(zhí)行方法通過查找“name”來決定調(diào)用哪個(gè)方法,然后做什么。第一個(gè)參數(shù)是一個(gè)“響應(yīng)”對象(這么叫是因?yàn)槌踔皇怯糜趯㈨憫?yīng)發(fā)回給用戶),它封裝的不只是可能發(fā)送的值;還有一個(gè)方法,使要調(diào)度的響應(yīng)返回給用戶以及可以找出有關(guān)DOM的實(shí)現(xiàn)機(jī)制。第二個(gè)參數(shù)是上面參數(shù)對象的值(在這里是Id和name)。這個(gè)方案的優(yōu)點(diǎn)是每個(gè)函數(shù)都有一個(gè)統(tǒng)一的接口,反映了在客戶端上使用的結(jié)構(gòu),這意味著用來思考每一端的代碼的心理模式是相似的。這是getAttribute的底層實(shí)現(xiàn),在之前也看到過:

FirefoxDriver.prototype.getElementAttribute = function(respond, parameters) {

  var element = Utils.getElementAt(parameters.id,

       respond.session.getDocument());

  var attributeName = parameters.name;

  respond.value = webdriver.element.getAttribute(element, attributeName);

  respond.send();

};

為了使元素引用一致,第一行是在緩存中通過不透明的ID查找被引用的元素。在Firefox driver中,那個(gè)ID是一個(gè)通用識別碼,cache是一個(gè)map。這個(gè)getElementAt方法還檢查元素是否已知并且附加到DOM上,如果檢查失敗,ID則從緩存中移除并拋異常返回給用戶。

第二行之前討論過的是利用瀏覽器自動化原子,這時(shí)候編譯為一個(gè)單個(gè)腳本并加載為擴(kuò)展的一部分。后一行調(diào)用了send方法,做了個(gè)簡單的檢查,確保在調(diào)用執(zhí)行方法的回調(diào)前一次只發(fā)一個(gè)響應(yīng)。該響應(yīng)是以JSON字符串裝到對象里的形式發(fā)回給用戶(假設(shè)getAttribute返回7,意思是沒有發(fā)現(xiàn)元素)。

{

  'value': '7',

  'status': 0,

  'sessionId': 'XXX'

}

然后Java客戶端檢查狀態(tài)的值,如果該值非零,把數(shù)字狀態(tài)碼轉(zhuǎn)換成正確類型的異常拋出來,使用“value”字段設(shè)置發(fā)送給用戶的消息,如果狀態(tài)為零“value”字段的值直接返回給用戶。

大部分能行的通,但是有一位聰明的讀者提出個(gè)問題:在調(diào)用執(zhí)行方法之前為什么調(diào)度器把對象轉(zhuǎn)換成一個(gè)字符串?

這樣做的原因是Firefox driver還支持純javascript編寫的測試腳本。通常情況下,這是件非常難以實(shí)現(xiàn)的事情:測試都是在瀏覽器的Javascript安全沙盒中運(yùn)行,因此可能不會做一系列對測試有用的事情,如在不同域之間切換或上傳文件等。但是,Webdriver的Firefox擴(kuò)展提供了一個(gè)解決辦法,屬性添加到文檔元素上以證明它的存在。Webdriver的Javascript API使用它作為一項(xiàng)指標(biāo),它可以添加JSON序列化的命令對象作為文檔元素的命令屬性的值,觸發(fā)一個(gè)自定義的webdriverCommand事件,然后在被通知響應(yīng)已確定的相同元素上監(jiān)聽webdriverResponse事件。

這表明在一個(gè)裝有Webdriver擴(kuò)展的firefox版本里瀏覽網(wǎng)頁是一個(gè)壞點(diǎn)子,因?yàn)樗蛊渌诉h(yuǎn)程控制瀏覽器變得更容易。

在后臺有一個(gè)DOM消息器,等待webdriverCommand讀取序列化的JSON對象并調(diào)用命令處理器的執(zhí)行方法。這次,回調(diào)是在文檔元素上設(shè)置了響應(yīng)屬性,然后觸發(fā)預(yù)期的webdriverResponse事件。

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日韩永久免费视频 | 少妇人妻挤奶水中文视频毛片 | 一级特黄a视频 | 免费又黄又硬又爽大片 | 一级a毛片免费观看久久精品 | 日本成人在线播放 | 亚洲第一在线播放 | 特级做a爰片毛片免费看一区 | 国产日本欧美在线观看 | 欧美丝妇| 日亚毛片免费乱码不卡一区 | 一97日本道伊人久久综合影院 | 新神榜哪吒重生免费高清观看 | 精品视频一区二区 | 欧美va天堂 | a视频免费在线观看 | 午夜久久久久久亚洲国产精品 | 日韩伊人| 久久久久久久999精品视频 | 国产一区二区三区在线观看免费 | 欧美性猛交xxxxbbbb | 在线免费观看黄色片 | 日韩欧美一区二区三区不卡在线 | 手机在线免费观看毛片 | 亚洲精品午夜国产va久久成人 | 久久免费视频播放 | 冲田杏梨午夜久久99视 | 国产亚洲精品精品国产亚洲综合 | 夜夜操免费视频 | 日本欧美一区二区三区视频 | 欧美三级第一页 | 亚州一级 | 91四虎国自产在线播放线 | 在线精品亚洲欧洲第一页 | 国产福利免费视频 | 欧美一区二区三区视频在线 | 免费一级e一片在线播放 | 欧美在线影院 | 操你啦在线 | 最近中文字幕免费版在线 | 天天做天天爱天天做天天吃中 |