これを説明するのは難しいです。私はここ数年、何度も苦労してきました。何らかの方法でそれを行うためのパターンがあるに違いないと確信していますが、残念ながら私はそれを認識していません。
基本クラスと外部ライブラリのいくつかの子クラスを持つ (今日はセレンについてです) 基本クラス内にいくつかのヘルパー メソッドを導入したいと思います (既に存在するメソッドを使用)。このクラス。
具体例:
WebDriver
SeleniumのクラスはfindElement
、DOM 内の要素を検索する方法を提供します。最後に、特定のWebDriver
例 (ChromeDriver
またはFirefoxDriver
) を使用して、すべてのサブクラスを使用する必要がありますWebDriver
。
WebDriver
すべてのサブクラス化ドライバーで使用できるいくつかの便利なメソッドで拡張したいと言いました。findElementTimeout
たとえば、多かれ少なかれそのようなものを含むメソッドを注入したいと思います:
manage().timeouts().implicitlyWait(milliseconds, TimeUnit.MILLISECONDS);
WebElement element = findElement(selector);
manage().timeouts().implicitlyWait(0 , TimeUnit.MILLISECONDS);
return element;
実際、Selenium に関するものではなく、非常に一般的な使用例です。すでに与えられたメソッドを使用して、外国のソフトウェアの親クラスを変更します。そのような場合に使用される一般的な解決策を教えてもらえますか?