【发布时间】:2019-07-22 21:31:07
【问题描述】:
最终目标是获取 WebElement 变量名称以用于报告目的。
下面是我的代码。
A类:
Class A{
public void Click(WebElement element)
{
element.click();
System.out.println("Clicked on"+ element);
}
}
B类:
class B extends A{
@FindBy(xpath = "//li[@class='login-menu']//a[text()='Log In']")
WebElement link_Log_In;
Click(link_Log_In);
}
期望的输出:
点击了link_Log_In
实际输出:
点击[[ChromeDriver: chrome on XP (acc46d4d382511d7b18396d4a4dddd30)] -> xpath: //li[@class='login-menu']//a[text()='Log In']]
我还想使用 WebDriverEventListener 中的 afterClickOn(WebElement element, WebDriver driver) 方法在范围报告中打印相同的 Desired Output。
我已经创建了这样一种框架,即 WebDriverEventListener 结果根据需要打印在范围报告中,但无法如上所述打印所需的输出。
如果我在上面的代码中遗漏了什么,并在 WebDriverEventListener 的 afterClickOn(WebElement element, WebDriver driver) 方法中实现相同的功能,请告知
下面是click方法后的事件监听
public void afterClickOn(WebElement element, WebDriver driver) {
System.out.println("Clicked On"+element); // this is to print in console
ExtentManager.getTest().log(Status.valueOf(element), "clicked on"); // this is to print in extent report
}
【问题讨论】:
-
你能展示你用来写webelement来扩展报告的方法吗,基本上这是因为你试图用字符串写一个对象。
-
不,这不是 Java 反射的重复:如何获取变量的名称?使用 Java 反射我们无法实现所需的输出
-
@AmitJain 我已经在事件监听器中使用 afterclickmethod 更新了代码,这将帮助您回答我的问题。非常感谢您的帮助。实际上,我因此而陷入困境。
-
@Hari 日志方法接受 LogStatus 和字符串,您如何传递 WebElement,您能否显示您在日志方法的 param1 中使用的“状态”和 valueOf 方法是什么? valueOf 是一个 String 类方法。
标签: java selenium selenium-webdriver extentreports