【发布时间】:2021-04-17 09:42:59
【问题描述】:
有一个界面WebElement。
我想制作一个实现 WebElement 的包装器 UIElement。
我已经覆盖了所有方法。
但遇到了一个问题,即返回 List
这是我的方法,IDE 没有给出使用上面的错误:
List<UIElement> list = new ArrayList<>();
for (WebElement el : this.element.findElements(by)) {
UIElement uiElement = new UIElement(this.driver, el);
list.add(uiElement);
}
return list;
这里是 UIElement 类和构造函数:
public class UIElement implements WebElement {
private final WebDriver driver;
private final WebElement element;
private final Actions actions;
private final JavascriptExecutor jsExecutor;
private final Waiter waiter;
public UIElement(WebDriver driver, By by) {
this.driver = driver;
this.element = this.driver.findElement(by);
this.actions = new Actions(this.driver);
this.jsExecutor = (JavascriptExecutor) this.driver;
this.waiter = new Waiter(this.driver);
}
public UIElement(WebDriver driver, WebElement element) {
this.driver = driver;
this.element = element;
this.actions = new Actions(this.driver);
this.jsExecutor = (JavascriptExecutor) this.driver;
this.waiter = new Waiter(this.driver);
}
}
【问题讨论】:
-
将
List<UIElement> list = new ArrayList<>();更改为List<UIElement> list = new ArrayList<UIElement>(); -
@pburgr 不,它没有帮助
-
请阅读为什么a screenshot of code is a bad idea。粘贴代码并正确格式化。
-
您想通过创建
UIElement来完成什么?在我看来,您正在将一堆与元素无关的东西塞入该包装器中。
标签: java selenium-webdriver wrapper