我们可以将参数从XML文件传递到@beforesuite方法吗?

时间:2016-09-23 10:43:29

标签: xml selenium-webdriver parameter-passing testng testng-dataprovider

我们可以将参数从XML文件传递给@beforesuite方法吗?

TestNG.xml文件

<suite name="Suite" verbose="1"> 
 <test name="Selenium_TestFF">
 <parameter name="Browser" value="Firefox"/>
   <classes>
      <class name="testcases.TestSuiteOne"/>
    </classes>
  </test>
  <test name="Selenium_TestC">
    <parameter name="Browser" value="Chrome"/>
    <classes>
      <class name="testcases.TestSuiteOne"/>
    </classes>
  </test>
  <test name="Selenium_TestIE">
    <parameter name="Browser" value="InternerExplorer"/>
    <classes>
      <class name="testcases.TestSuiteOne"/>
    </classes>
  </test>
</suite> 

@BeforeSuite方法,接收参数&#39;浏览器&#39;被调用

@Parameters({"Browser"})
@BeforeSuite
public void Setup(String Browser){
    System.out.println(Browser);
    driver = getDriver(Browser);    
}

由于

1 个答案:

答案 0 :(得分:1)

@BeforeSuite将无法查看<test>上下文中的参数。 但如果您在<parameter>中配置<suite>(这将无法满足您的需求),它应该会有效。

要执行您的预期,只需将@BeforeSuite替换为@BeforeTest即可。它会在<test>之前打开一个新的不同浏览器。