猿问

如何为魅力报告设置命名定位器?

我看过一个视频,可以为魅力报告设置命名定位器以获取视图 $(locatorname).click - 通过:

有代码:


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 时,我没有方法。


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


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


jeck猫
浏览 101回答 1
1回答

慕斯709654

你的例子似乎不成立。至少,方法as必须返回this。而且,id在重写中findElements丢失了。另外,目前还不清楚为什么要扩展NamedBy而不是By.无论如何,这只是一个包装By。要在报告中查看这些定位器的名称,您必须先按照视频中的先前示例(事件侦听器)进行操作,然后才能完成NamedBy实施。PS 为了使其工作方式与代码片段中介绍的方式相同,您必须添加额外的创建逻辑,例如:public&nbsp;static&nbsp;NamedBy&nbsp;id(String&nbsp;locator)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;NamedBy(By.id(locator)); }
随时随地看视频慕课网APP

相关分类

Java
我要回答