Javascript是交互浏览器元素所必需的。但是selenium为所有高级编程语言提供了应用程序接口,比如Java、C#等。selenium会将这些java命令编译成javascript代码吗?例如,当代码不是用javascript编写时,selenium如何与浏览器交互
发布于 2013-10-17 17:22:24
不,Selenium不会(必要地)将Java转换为JavaScript或类似的语言。
引用http://docs.seleniumhq.org/docs/03_webdriver.jsp
Selenium-WebDriver使用每个浏览器对自动化的本机支持直接调用浏览器。这些直接调用的方式以及它们支持的功能取决于您使用的浏览器。
Selenium WebDriver有一个特定于浏览器的部分,通常作为模块、扩展或插件嵌入到浏览器中,这些模块、扩展或插件提供了到Selenium脚本运行的接口,例如,在您的Java JUnit代码中。
这个插件如何与浏览器交互取决于它的实现。我猜在大多数情况下,首先编译成javascript,然后在浏览器中执行javascript效率太低。在可能的情况下,我猜测开发人员会直接在and浏览器中使用/调用内部API来访问(内部) DOM并与其交互。
发布于 2013-10-17 17:28:30
来自official Selenium文档:
Selenium-WebDriver使用每个浏览器对自动化的本机支持直接调用浏览器。这些直接调用的方式以及它们支持的功能取决于您使用的浏览器。
你可以在这个link中找到Webdriver内部的一个非常全面的描述。下面是一些不错的数据:
Selenium Javascript库的层:

Firefox驱动程序体系结构概述:

发布于 2013-10-17 18:50:23
西蒙·斯图尔特,WebDriver背后的指导力量,为The Architecture of Open Source Applications写了一个chapter on its design and architecture。它详细介绍了如何以及为什么要做事情。
https://stackoverflow.com/questions/19422391
复制相似问题