Python WebDriver 是如何工作的?

3 投票
1 回答
1363 浏览
提问于 2025-04-15 16:29

我想给 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文档中关于同样架构的介绍: 如何工作

alt text
(来源: openqa.org)

撰写回答