2009-11-28 73 views
3

我想添加一些功能到webdriver,但因爲我根本不瞭解Java,所以我想先了解它的工作方式。所以當我得到它時,有一個firefox插件(javascript),並且有安裝了該擴展的啓動firefox的java代碼,然後這個java代碼監聽一個本地端口,當它得到一些命令時,java發信號給firefox插件,這是做實際的工作。 Python代碼只是一組端口接口的快捷方式。這是正確的?python webdriver如何工作?

更新:

感謝您的答覆,malatio。但是,任何人都可以請解釋一下,爲什麼當我在 D:\webdriver-read-only\firefox\src\extension\components\firefoxDriver.js 再經過 FirefoxDriver.prototype.deleteCookie = function(respond, cookieString) { 添加 alert('Hello world!'); 運行

from webdriver_firefox.webdriver import WebDriver 

wd = WebDriver() 
wd.delete_all_cookies() 

我還是看到Hello world!警報(並得到一個error,由方式)

回答

4

是的,你已經得到它。 Java服務器使用一個特殊的JavaScript環境來控制瀏覽器,並允許服務器控制它。服務器通過http監聽給它的命令,當它接收到命令時,它會在瀏覽器上拖動字符串以使其執行任務。 webdriver的Python API是構建要發送到webdriver服務器的正確http命令的代碼。對Webdriver而言,這可能有或沒有對此進行很好的描述或圖表,但Selenium的體系結構非常相似(實際上,Webdriver和Selenium被相互合併爲「Selenium 2」)。以下是Selenium文檔中相同體系結構的簡要說明:how-selenium-rc-works

alt text http://selenium.openqa.org/selenium-rc.png