任何人都可以解释浏览器和网络驱动程序之间的通信方式吗? webdriver对象如何在浏览器中读取和识别html元素?为此,webdriver对象和浏览器之间的关系是什么以及如何构建关系浏览器和webdriver对象?
driver = new FirefoxDriver();
driver.findElements(By.id("element"));
答案 0 :(得分:2)
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。 我不确定这个页面的更新程度,但应该有助于理解这个概念。