好的,这很难解释,在过去的几年里,我一直在努力解决这个问题。我确信一定有某种模式可以以某种方式做到这一点,但遗憾的是我没有意识到这一点。
有一个外国库的基类和几个子类(今天它是关于硒的)我想在基类中引入一些帮助方法(使用已经存在的方法),然后这些方法也可以在扩展的外国子类中使用这节课。
一个具体的例子:
WebDriver
Selenium 类提供了一种findElement
在 DOM 中查找元素的方法。最后,必须使用所有子类的特定WebDriver
eg(ChromeDriver
或) 。FirefoxDriver
WebDriver
话虽如此,我想扩展WebDriver
一些方便的方法,然后可以与所有子类驱动程序一起使用。例如,我想注入一个findElementTimeout
或多或少包含类似内容的方法:
manage().timeouts().implicitlyWait(milliseconds, TimeUnit.MILLISECONDS);
WebElement element = findElement(selector);
manage().timeouts().implicitlyWait(0 , TimeUnit.MILLISECONDS);
return element;
事实上,它根本不是关于 Selenium 的,而是一个非常普遍的用例。使用已经给出的方法更改外国软件的父类。谁能指出在这种情况下使用的一般解决方案?