UI自动化

UI自动化(二)selenium底层原理

2021-01-08  本文已影响0人  社会主义顶梁鹿

selenium1.x:这个时候的selenium,使用的是JavaScript注入技术与浏览器打交道。

需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段段Javascript,在Selenium内核启动浏览器之后注入这段Javascript。

Javascript可以获取并调用DOM的任何元素,自如的进行操作。

由此才实现了Selenium的目的:自动化Web操作。

这种Javascript注入技术的缺点是速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低。

selenium2.x:相比于selenium1.x,2.x版本整合了webdriver以及原版selenium。

两个项目合二为一,虽然名字还叫selenium,但也可以叫Webdriver。

这个版本的selenium是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API。

直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)。

由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。

然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。

selenium3.x:相比于selenium1.x,2.x版本有了更新的特性加入。

对Edge和safari原生驱动的支持,Edge驱动由MS提供,safari原生驱动由Apple提供。

在最新的Firefox方面,开始支持Mlzilla的geckodriver驱动,来驱动Firefox的控制。

selenium3.0可以支持firefox47以上版本,但是许要下载geckodriver.exe驱动,并添加到环境变量path下。

上一篇 下一篇

猜你喜欢

热点阅读