如何为吸引力报告设置命名的定位符?

时间:2019-09-13 11:26:10

标签: java allure selenide

我看过一个视频,可以在该视频中为诱人报告设置命名的定位器 获取视图$(locatorname)。单击-通过:

allure report 有代码:

public  class Named extends NamedBy {

    private final By        origin;
    private  String name;

    public Named(By origin) {
        this.origin = origin;
    }

    public Named as(String name) {
        this.name = name;

    }

    @Override
    public String toString() {
        return Objects.nonNull(name) ? name : this.origin.toString();
    }

    @Override
    public List<WebElement> findElements(SearchContext context) {
        return  new Named(By.id(id));
    }

}

以及元素代码:

SelenideElement button = $(id("someid").**as("locatorName")**)

,然后应该可以使用此元素。

但是我不能。

我没有像尝试创建selenideElement时那样的方法。

请帮助。这样的报告更具可读性。

视频URL:https://youtu.be/d5gjK6hZHE4?t=1300

1 个答案:

答案 0 :(得分:0)

您的示例似乎无效。至少方法as必须返回this。此外,覆盖的id中的findElements丢失。另外,还不清楚您为什么扩展NamedBy而不是By

无论如何,那只是By的包装。要在报告中查看这些定位符的名称,您必须先完成视频(事件监听器)中的上一个示例,然后再完成NamedBy的实现。

P.S。为了使其与代码段中介绍的方式相同,您必须添加其他创建逻辑,例如:

public static NamedBy id(String locator) {
    return new NamedBy(By.id(locator));
}