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 的相應的繼承關係

完整的繼承關係圖

在這裏插入圖片描述

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