您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 > Selenium
Selenium私房菜系列全集
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/28 13:48:19 ] 推薦標(biāo)簽:

為什么Selenium RC中的Selenium Server需要以這種代理服務(wù)器的形式存在?其實(shí),這和瀏覽器的“同源策略”(The Same Origin Policy)有關(guān)。

一.什么是同源策略

    同源策略,它是由Netscape提出的一個(gè)的安全策略,現(xiàn)在所有的可支持javascript的瀏覽器都會(huì)使用這個(gè)策略。

為什么需要同源策略,這里舉個(gè)例子:
    假設(shè)現(xiàn)在沒有同源策略,會(huì)發(fā)生什么事情呢?大家知道,JavaScript可以做很多東西,比如:讀取/修改網(wǎng)頁中某個(gè)值。恩,你現(xiàn)在打開了瀏覽器,在一個(gè)tab窗口中打開了銀行網(wǎng)站,在另外一個(gè)tab窗口中打開了一個(gè)惡意網(wǎng)站,而那個(gè)惡意網(wǎng)站掛了一個(gè)的專門修改銀行信息的JavaScript,當(dāng)你訪問這個(gè)惡意網(wǎng)站并且執(zhí)行它JavaScript時(shí),你的銀行頁面會(huì)被這個(gè)JavaScript修改,后果會(huì)非常嚴(yán)重!而同源策略為了防止這種事情發(fā)生,看下圖:

比如說,瀏覽器的兩個(gè)tab頁中分別打開了http://www.baidu.com/index.htmlhttp://www.google.com/index.html,其中,JavaScript1和JavaScript3是屬于百度的腳本,而JavaScript2是屬于谷歌的腳本,當(dāng)瀏覽器的tab1要運(yùn)行一個(gè)腳本時(shí),便會(huì)進(jìn)行同源檢查,只有和www.baidu.com同源的腳本才能被執(zhí)行,所謂同源,是指域名、協(xié)議、端口相同。所以,tab1只能執(zhí)行JavaScript1和JavaScript3腳本,而JavaScript2不能執(zhí)行,從而防止其他網(wǎng)頁對(duì)本網(wǎng)頁的非法篡改。

二.Selenium Server為什么以這種代理服務(wù)器的形式存在
    上面說了同源策略,那同源策略的Selenium Server有什么關(guān)系呢??呵呵,上一篇說過,Selenium Core是一堆JS函數(shù)的集合,它是我們操作瀏覽器的基礎(chǔ)。當(dāng)存在同源策略時(shí),便出現(xiàn)一些問題,看下圖:

因?yàn)镾elenium Core的JS腳本的“源”是localhost,所以瀏覽器會(huì)阻止Selenium Core的JS腳本在測(cè)試頁面上執(zhí)行,這是為什么在本系列第一篇中說,如果只使用Selenium Core進(jìn)行測(cè)試,需要把Selenium Core安裝到遠(yuǎn)程服務(wù)器上。

    為了解決上面這個(gè)問題,Selenium RC中的Selenium Server以代理服務(wù)器的形式出現(xiàn)了,下圖說明它是如何借助代理的身份蒙騙瀏覽器的:>

Selenium Server以代理的形式存在,通過修改WebSite的源信息,從而達(dá)到欺騙瀏覽器的目的,這樣,Selenium RC輕松繞過了同源策略。在上圖中,瀏覽器會(huì)認(rèn)為WebSite和Selenium Core來自同一個(gè)“源”----代理服務(wù)器!

上一頁12345678910下一頁
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd