回答
介紹了一種安全原因,所有「同源策略」首先,它可以確保你的網站的內容將不會被從腳本進行訪問另一個網站。根據政策,瀏覽器中加載的任何代碼只能在該網站的域中運行。
------------------------------------------------ --------------------------------- ----------------- -----------------------------
它做了什麼?
同源策略禁止JavaScript代碼訪問來自與啓動位置不同的域中的元素。例如,www.google.com中的HTML代碼使用JavaScript程序「testScript.js」。該同源策略將只允許testScript.js內訪問頁面google.com如google.com/mail,google.com/login,或google.com/signup。但是,它不能訪問來自不同站點的頁面,例如yahoo.com/search或fbk.com,因爲它們屬於不同的域。
這就是爲什麼在Selenium RC之前,測試人員需要安裝Selenium Core(一個JavaScript程序)和包含正在測試的Web應用程序的Web服務器的本地副本,以便它們屬於同一個域。
------------------------------------------------- -------------------------------------------------- ---------------------------------
如何避免?
爲了避免「同源策略」代理注入方法時,在代理注入模式中的Selenium服務器作爲客戶端配置的HTTP代理,測試下的瀏覽器和應用程序之間的它位於然後掩模AUT在虛構的URL下
Selenium使用java腳本在瀏覽器上驅動測試; Selenium將它自己的js注入從aut返回的響應中。但有一個Java腳本安全限制(同源策略)它允許您修改使用js的頁面的html只有當js也源自與html相同的域。這個安全限制是非常重要的,但會損害Selenium的工作。這是Selenium服務器發揮重要作用的地方。
嗨阿布舍克,我不明白「如何避免」部分。你可以用一些例子來解釋一下嗎? – prasannajit
通俗地說,它僅僅意味着Selenium網絡服務器位於瀏覽器,例如firefox和應用程序(正在測試中),例如www.google.com,並將其掩蓋在一個虛構的網址之下 - 這樣就可以欺騙瀏覽器都起源於相同的網址。因此允許用戶在應用程序上執行自動化任務。換句話說,Selenium服務器充當HTTP代理來「欺騙」瀏覽器,使其相信Selenium Core和被測試的Web應用程序來自同一個來源。 –
明白了。謝謝你 – prasannajit
在Selenium WebDriver之前,Selenium是「Javascript Task Runner」。它會將自己設置爲服務器(本地),並打開指向本地運行的Selenium服務器的瀏覽器。因此,瀏覽器現在正在與本地運行的Selenium服務器交談。
雖然這是一個問題,因爲瀏覽器正在從Selenium獲取一個腳本,告訴它它想要從http://websitetotest.com
獲取資源。但是瀏覽器從http://127.0.0.1:9000/selenium
(例如)獲得了這個腳本。瀏覽器說:「嘿,這個腳本從本地主機來了,現在它的要求從某些外網站的資源。這違反了同源策略。webdriver的走過來,創造了一個代理欺騙瀏覽器,使其思維
它與Selenium和websitetotest
所在的同一服務器通信,Abhishek對此提供了一個簡明的解釋。
這可能是一個遲到的回覆,但是,如果您指的是selenium webdriver而不是selenium RC那麼答案是你不必擔心在webdriver的情況下同樣的起源政策,因爲每個瀏覽器都有自己的webdriver。這是webdriver的全部優點,而不是RC,即沒有硒核心注入瀏覽器和AUT之間沒有中間件客戶端服務器.Webdriver在控制瀏覽器自動化方面提供本機操作系統級支持。
- 1. 如何克服iframe中的同源策略?
- 2. 同源策略
- 3. 使用Jetty公開目錄(或者,克服同源策略)
- 4. QtWebkit同源策略
- 5. jFeed同源策略
- 6. XMLHttpRequest同源策略
- 7. 同源策略和Web服務
- 8. 同源策略的例外
- 9. JavaScript:「同源策略」失敗
- 10. 同源策略文件
- 11. iframe - 位置 - 同源策略
- 12. 抑制同源策略
- 13. 是IndexedDB和同源策略
- 14. Safari和Javascript - 同源策略?
- 15. 違反了同源策略?
- 16. 同源策略局域網
- 17. javascript中的同源策略
- 18. Jquery .load同源策略
- 19. cURL繞過同源策略
- 20. Selnium webdriver的錯誤規格
- 21. 爲Selnium Webdriver添加ChromeOptions C#
- 22. HTTP起源頭,並與同源策略
- 23. 使用Flask服務靜態資源 - 運行同源策略
- 24. 如何克服Ajax內容安全策略指令?
- 25. JavaScript同源策略 - 它如何適用於不同的子域?
- 26. HTML5中的交叉文檔消息如何真正克服適用於XMLHttpRequest的同源策略?
- 27. 相同的來源策略例外
- 28. 四處逛逛GWT同源策略
- 29. ASP.net同源策略頭不起作用
- 30. Websockets問題,也許是同源策略?
考慮澄清你面臨的問題......請注意,硒本身並不真正受同源政策的控制... –
嗨,我只是想知道selenium Webdriver如何克服這個問題,意味着它有任何新的架構模型或者是什麼 ? – prasannajit