首页 > 解决方案 > Selenium:类型不匹配:无法从 Class 转换到类[]

问题描述

我正在使用 TestNG 框架。我有一个Test1扩展类BaseTestSuite。我还有一个CustomListeners实现WebDriverEventListener. 当我@Listeners(CustomListeners.class)在 Test 类中使用注释时,出现以下错误。请帮忙解决。

Type mismatch: cannot convert from Class<CustomListeners> to Class<? extends ITestNGListener>[]

测试班

@Listeners(CustomListeners.class) //Error line
public class Test1 extends BaseTestSuite {

    LoginPage lp;
    TabMenu tm;

    @Test(priority = 0, testName = "Verify Login")
    public void login() throws Exception {
        lp = new LoginPage(driver, test);
        tm = new TabMenu(driver, test);
        driver.get(Constants.url);
        lp.verifyLoginPageLogo();
        lp.setUserName("dmin");
        lp.setPassword("admin");
        lp.clickLoginBtn();
        tm.verifyTabMenu();
        tm.isCurrentTab("Dashboard");
    }
}

听众班

public class CustomListeners implements WebDriverEventListener {
/*
         * 
         * All Implemented methods
         * 
         * 
         */
}

标签: seleniumtestnglisteners

解决方案


Selenium 不是 TestNG 的一部分。WebDriverEventListener 接口不扩展 ITestNGListener。这两个类没有任何共同之处。TestNG 需要一个扩展或实现其中一个侦听器的类才能工作。要将这两个类结合起来工作,使您的类 CustomListeners 扩展 org.testng.TestListenerAdapter 类,因为它是唯一的侦听器类,而不是接口,因此您不需要实现 TestNG 方法。

这应该是你的类声明:

 public class CustomListeners extends TestListenerAdapter implements WebDriverEventListener

试试这个解决方法。


推荐阅读