如何解决此错误"Can inject only one of <ITestContext, XmlTest> into a @BeforeTest annotated setUp"此错误



获取以下错误配置失败:@BeforeTest设置org.testng.TestNGE异常:只能将中的一个注入到@BeforeTest注释的setUp中。有关本机依赖项注入的更多信息,请参阅http://testng.org/doc/documentation-main.html#native-依赖注入

public static WebDriver driver;
ReadConfig rcg=new ReadConfig();
protected String firstname=rcg.getFirstName();
protected String secondName=rcg.getSecondName();
protected String email=rcg.getEmail();
protected String company_name=rcg.getCompany();
protected String phone_number=rcg.getPhone();
protected String url=rcg.getUrl();
protected String br=rcg.getbrowser();
@BeforeTest
public void setUp(String br)
{
this.br=br;
if(br.equalsIgnoreCase("Firefox"))
{
System.setProperty("webdriver.gecko.driver",System.getProperty
(("user.dir")+"\Drivers\geckodriver.exe"));
driver=new FirefoxDriver();
driver.get(url);
}
else if(br.equalsIgnoreCase("Chrome"))
{
System.setProperty
("webdriver.chrome.driver",System.getProperty("user.dir")+"\Drivers\chromedriver.exe");
driver=new ChromeDriver();
driver.get(url);
}
}
@AfterTest
public void teardown()
{
driver.quit();
}

}

对于@BeforeTest方法,您正在传递参数。所以它期望xml中的参数。由于它没有用@Parameters({Parameter Name}(进行注释,因此引发了错误。因此,请如下注释您的方法。

@BeforeTest
@Parameters({"BrowserName"})
void setUp(String br)

从xml中,传递参数值

<test>
<parameter name="BrowserName" value="Chrome"></parameter>
-----
</test>

还有下面的重复问题,都已经回答了。

如何解决这个错误";只能注入<ITestContext,XmlTest>转换成@BeforeTest注释的setUp";这个错误

最新更新