Python WebDriver 是如何工作的?
我想给 webdriver 添加一些功能,但我完全不懂Java,所以我想先了解它是怎么工作的。我的理解是,有一个Firefox的插件(用JavaScript写的),还有一段Java代码用来启动安装了这个插件的Firefox。然后这段Java代码会监听一个本地端口,当收到命令时,它会通知Firefox插件去执行实际的操作。而Python代码只是一些快捷方式,用来和这个端口接口进行交互。这说得对吗?
更新:
感谢你的回复,malatio。不过,有人能解释一下为什么当我在
FirefoxDriver.prototype.deleteCookie = function(respond, cookieString) {
后面加上
alert('Hello world!');
在
D:\webdriver-read-only\firefox\src\extension\components\firefoxDriver.js
这个文件里,然后运行
from webdriver_firefox.webdriver import WebDriver
wd = WebDriver()
wd.delete_all_cookies()
我还是看不到 Hello world!
的提示框(顺便说一下,我还遇到了一个错误)
1 个回答
4
没错,你理解得很对。Java服务器可以控制一个浏览器,这个浏览器有一个特别的JavaScript环境,让服务器能够对它进行控制。服务器会监听通过http发送给它的命令,当它收到命令后,就会操控浏览器去执行一些操作。Python的webdriver API就是用来构建正确的http命令,发送给webdriver服务器的。关于Webdriver的描述或者图示可能有好有坏,但它的架构和Selenium非常相似(实际上,Webdriver和Selenium正在合并,成为“ Selenium 2”)。下面是Selenium文档中关于同样架构的介绍: 如何工作
(来源: openqa.org)