webdriver 和浏览器之间通信使用的机制是什么

What is the mechinism used for commiunication between webdriver and browser

任何人都可以解释浏览器和网络驱动程序之间的通信是如何发生的?。 webdriver 对象如何读取和识别浏览器中的 html 元素?。那么webdriver对象和浏览器的关系是什么,如何建立浏览器和webdriver对象的关系?

 driver = new FirefoxDriver(); 
 driver.findElements(By.id("element")); 

webdriver 和浏览器之间的通信通过 json-wire 协议发生,该协议在 W3C documentation 中指定。 webdriver 支持的所有浏览器都使用相同的协议。

webdriver 如何读取和识别页面中的元素?这因浏览器而异。

Firefox - 在 运行 测试期间,webdriver 作为插件安装在浏览器中。 Webdriver 服务器将向此插件发送 json-命令,这些命令将在浏览器中执行。该插件构建在 webdriver jar 文件中。它将在 运行 测试时安装。

Chrome - 为了测试 chrome,您还需要一个 chromedriver.exe 文件。 chromedriver.exe 的作用类似于 firefox 插件。可以接收来自webdriver服务器的命令,并在浏览器上执行

IE - 类似于Chrome,IE在InternetExplorerDriver.exe的帮助下执行。

您可以通过查看 github 中不同的 DriverFile 源代码来了解更多有关功能的信息。

您还可以从这里了解工作原理 - http://www.aosabook.org/en/selenium.html。 我不确定此页面的更新程度,但应该有助于理解这个概念。