通过WebDriverEventListener打印WebElement变量名称

时间:2015-06-25 09:36:07

标签: java selenium selenium-webdriver testng

我正在使用EventFiringWebDriver和WebDriverEventListener。在监听器中,我正在clickOn(WebElement arg0, WebDriver arg1)方法之后实现方法。

WebElement myaccountLink =driver.findElement(By.cssSelector("div.footer>div.links>ul>li>a[title='My Account']"));
myaccountLink.click();

听众:

public void afterClickOn(WebElement arg0, WebDriver arg1) {
    System.out.println("Clicked : "+arg0.toString());
}

结果是:

  

点击: - > css选择器:div.footer> div.links> ul> li> a [title ='我的帐户']]

但我想:

  

点击:myaccountLink

2 个答案:

答案 0 :(得分:1)

您可以尝试构建这样的自定义类:

public class Selector {
    public String name;
    public By by;

    public Selector(String name, By by){
        this.name= name;
        this.by = by;
    }

    public String getName(){
        return name;
    }

    public By getBy(){
        return by;
    }
}

然后,在您的代码中:

Selector myAccountLink = ("Link to 'My account'", By.cssSelector("div.footer>div.links>ul>li>a[title='My Account']"));
System.out.println("Clicked: " + myAccountLink.getName());

// Output: "Link to 'My account'"

答案 1 :(得分:0)

我可以对此进行更正但据我所知,这是不可能的。变量名称不是用Java传递的,只是值。