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

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

最佳答案

Webdriver和浏览器之间的通信通过W3C documentation中指定的json-wire协议进行。 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了解有关工作的信息。
我不确定此页面的更新方式,但是应该有助于理解该概念。

07-24 09:27