我看过一个视频,可以为魅力报告设置命名定位器以获取视图 $(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
1 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
你的例子似乎不成立。至少,方法as必须返回this。而且,id在重写中findElements丢失了。另外,目前还不清楚为什么要扩展NamedBy而不是By.
无论如何,这只是一个包装By。要在报告中查看这些定位器的名称,您必须先按照视频中的先前示例(事件侦听器)进行操作,然后才能完成NamedBy实施。
PS 为了使其工作方式与代码片段中介绍的方式相同,您必须添加额外的创建逻辑,例如:
public static NamedBy id(String locator) {
return new NamedBy(By.id(locator));
}添加回答
举报
0/150
提交
取消
