如何为魅力报告设置命名定位器?
How To set named locators for allure report?
我看过一个视频,其中可以为魅力报告设置命名定位器
获取视图 $(locatorname).click - passed:
有代码:
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 时的方法。
请帮忙。这样的报告更易读。
您的示例似乎无效。至少,一个方法 as
必须 return this
。此外,覆盖的 findElements
中的 id
丢失了。另外,还不清楚为什么要扩展 NamedBy
而不是 By
.
无论如何,这只是 By
的包装。要在报告中查看这些定位器的名称,您必须在完成 NamedBy
实施之前首先遵循视频中的先前示例(事件侦听器)。
P.S。要使其与代码片段中引入的方式相同,您必须添加额外的创建逻辑,例如:
public static NamedBy id(String locator) {
return new NamedBy(By.id(locator));
}
我看过一个视频,其中可以为魅力报告设置命名定位器 获取视图 $(locatorname).click - passed:
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 时的方法。
请帮忙。这样的报告更易读。
您的示例似乎无效。至少,一个方法 as
必须 return this
。此外,覆盖的 findElements
中的 id
丢失了。另外,还不清楚为什么要扩展 NamedBy
而不是 By
.
无论如何,这只是 By
的包装。要在报告中查看这些定位器的名称,您必须在完成 NamedBy
实施之前首先遵循视频中的先前示例(事件侦听器)。
P.S。要使其与代码片段中引入的方式相同,您必须添加额外的创建逻辑,例如:
public static NamedBy id(String locator) {
return new NamedBy(By.id(locator));
}