我看过一个视频,可以为魅力报告设置命名定位器以获取视图 $(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
提交
取消