selenium与appium依赖中类与类之间到底是如何继承的详解

前言

下面我会把 selenium 依赖和 appium 依赖混合起来,因为二者依赖包之间本身就已经具备了一些类的相互继承关系,下面我会通过 uml 类图的形式非常清晰的展现

涉及 driver 的类的继承关系

下面这张图不够全面,但是足以把最常用最重要的和 driver 有关的类和接口囊入其中
在这里插入图片描述我们能从上图中得到哪些信息呢?

最上面的接口在往上无继承,WebDriver 是一个接口,我们平常使用WebDriver driver = new ChromeDriver()实际就是一个多态的体现,RemoteWebDriver 是一个实现类,这时我们能想到平常使用 selenium-grid 就要使用 new 一个 Remote 的驱动了,这是因为它本身是一个实现类提供了相应的构造器。我们还可以发现手机的驱动都是会一直继承到 WebDriver 的。并且我们去看源码会发现,手机端从 MobileDriver 开始就需要在创建时候指明泛型,该泛型需要继承 WebElement,WebDriver 还没要求要用泛型,可以发现 MobileDriver 中有不同的 findElement 方法,返回的就是该泛型类型。

其他常见类的继承关系

在这里插入图片描述我们能从上图中得到哪些信息呢?

我们可以发现上图中的 JavascriptExecutor 的位置,也可以看见 WebElement 的相应的继承关系

完整的继承关系图

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章