0

Javascript 需要与浏览器元素交互。但是 selenium 为所有高级编程语言(如 Java、C# 等)提供 API。selenium 是否将这些 java 命令编译为 javascript 代码?即当代码不是用javascript编写时,selenium如何与浏览器交互

4

3 回答 3

1

不,Selenium 不会(必然)将 Java 转换为 JavaScript 等。

引用http://docs.seleniumhq.org/docs/03_webdriver.jsp

Selenium-WebDriver 使用每个浏览器对自动化的原生支持直接调用浏览器。这些直接调用的方式以及它们支持的功能取决于您使用的浏览器。

Selenium WebDriver 有一个特定于浏览器的部分,它通常作为模块、扩展或插件嵌入在浏览器中,它为运行的 Selenium 脚本提供接口,例如,在您的 Java JUnit 代码中。

这个插件如何与浏览器交互取决于它的实现。我猜在大多数情况下,先编译成 javascript 然后在浏览器中执行 javascript 效率太低了。在可能的情况下,我猜开发人员会直接使用/调用网络浏览器中的内部 API 来访问(内部)DOM 并与之交互。

于 2013-10-17T09:22:24.263 回答
0

来自官方Selenium 文档:

Selenium-WebDriver 使用每个浏览器对自动化的原生支持直接调用浏览器。这些直接调用的方式以及它们支持的功能取决于您使用的浏览器。

您可以在此链接下找到对 Webdriver 内部接口的非常全面的描述 。那里的一些不错的数字:

Selenium Javascript 库的层级:

图 16.3:Selenium Javascript 库的层级

Firefox 驱动架构概述:

Firefox 驱动架构概述

于 2013-10-17T09:28:30.207 回答
0

WebDriver 背后的指导力量 Simon Stewart为The Architecture of Open Source Applications写了一个关于其设计和架构的章节。它详细介绍了如何以及为什么要完成这些事情。

于 2013-10-17T10:50:22.577 回答