我有一些我经常使用的自定义查找方法,而不是 WebDriver.findElement 和 WebDriver.findElements。这些方法采用包含 By 定位器和正则表达式的自定义定位器对象,它们返回与 By 定位器匹配且其文本与正则表达式匹配的 WebElement 或 WebElement。
这些在很多场合都非常有用,我想为 WebElement.findElement 和 WebElement.findElements 提供相同的功能。我可以创建一个实现 WebElement 接口的新类,并且还包含这些新的 find 方法,但我对这是否真的有效感到困惑。毕竟,当我运行 FireFox 时,驱动程序返回的元素是 FireFoxWebElements。当我运行 IE 时,它们是 InternetExplorerElements。这两个都实现了 WebElement,但它们与我实现 WebElement 的自定义类完全无关,对吧?他们不会有这个额外的功能,他们不能被视为我的自定义类,因为他们......不是。
由于 WebDriver.findElement(s) 是 WebElements 的唯一“来源”,也就是说,它是 WebElements 到达我的代码的基本方式,然后我可以更改我的自定义 findElement(s) 方法(调用 WebDriver.findElement(s ),最终) 为任何包含我的特殊 element.find 方法的 WebElement 返回一个新的自定义包装器?这样,到达我的代码中的所有 WebElement 都将是这些自定义元素以及我想要的额外查找方法。对?如果是这样,这样的包装类会是什么样子?