0
我在Selenium webdriver 3.4中使用testNG。我想同時對不同的瀏覽器進行測試。如何使用@BeforeSuite中的testNG @Parameters讀取testng.xml中的值
在我的testng.xml我有
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Demo">
<test name="Demo on Chrome">
<parameter name="browser" value="Chrome" />
<classes>
<class name="catalogueMemberPortal.CatalogueTest"/>
</classes>
</test>
<test name="Demo on Firefox">
<parameter name="browser" value="Firefox" />
<classes>
<class name="catalogueMemberPortal.CatalogueTest"/>
</classes>
</test>
</suite>
我
public class BaseClass {
public static WebDriver driver;
public WebDriver getDriver() {
return driver;
}
@BeforeSuite
@Parameters({"browser"})
public void launchBrowser(String browser) throws Exception {
if (browser.equalsIgnoreCase("Firefox")){
String ffDriverPath = ((System.getProperty("user.dir")+"/browser_drivers/firefox/geckodriver.exe")) ;
System.setProperty("webdriver.gecko.driver",ffDriverPath);
driver = new FirefoxDriver();
logger.info("Firefox Initialized");
}
// same goes for other type of browsers
@AfterSuite
public void afterSuite() {
driver.close();
driver.quit();
}
}
錯誤我得到
org.testng.TestNGException代碼: 參數 '瀏覽器' 是必需的通過BeforeSuite on方法launchBrowser但未標記@可選或在C:\中定義爲 testng.xml
謝謝你將它改爲@BeforeClass爲我工作。 – Krishna
是的,它也可以工作,因爲一個類包含在''中。 –
juherr