我是TestNG和Selenium的新手。我有這個問題,直到現在沒有任何幫助。 我想創建一個方法來同時運行多個瀏覽器並在需要時調用該方法。下面是我的代碼..問題是當我從另一個類/方法調用它只運行一個瀏覽器作爲參數傳遞。親切指導我在哪裏,我錯了testng在另一種方法中調用參數化方法
public class CommonMethods {
WebDriver driver;
@BeforeTest
@Parameters("browser")
public void beforeTest(String browser)throws Exception{
if(browser.equalsIgnoreCase("firefox")) {
driver = new FirefoxDriver();
System.out.println("1");
}
if(browser.equalsIgnoreCase("IE")) {
System.setProperty("webdriver.ie.driver", "resource\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
System.out.println("2");
}
if(browser.equalsIgnoreCase("chrome")){
System.setProperty("webdriver.chrome.driver","resource\\chromedriver.exe");
// To remove message "You are using an unsupported command-line flag: --ignore-certificate-errors.
// Stability and security will suffer."
// Add an argument 'test-type'
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
driver = new ChromeDriver(options);
System.out.println("3");
}
}
}
這是的testng.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests">
<test name="FirefoxTest">
<parameter name="browser" value="firefox"/>
<classes>
<class name="mycompqa.helper.Calling"/>
<class name="mycompqa.helper.CommonMethods"/>
</classes>
</test> <!-- Test -->
<test name="ChromeTest">
<parameter name="browser" value="chrome"/>
<classes>
<class name="mycompqa.helper.Calling"/>
<class name="mycompqa.helper.CommonMethods"/>
</classes>
</test>
<test name="IETest">
<parameter name="browser" value="IE"/>
<classes>
<class name="mycompqa.helper.Calling"/>
<class name="mycompqa.helper.CommonMethods"/>
</classes>
</test>
</suite> <!-- Suite -->
這是我怎樣,我叫它
package mycompqa.helper;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.Test;
public class Calling {
CommonMethods com=new CommonMethods();
@Test
public void run() throws Exception{
com.beforeTest("firefox");
WebDriver driver=com.driver;
driver.get("http://www.snapdeal.com");
}
}
下面這段代碼只運行在Firefox瀏覽器,但我想要的是所有的瀏覽器應該同時運行。當我將firefox作爲參數傳遞時,只有該瀏覽器纔會運行。我應該怎麼做才能同時執行所有瀏覽器?
您能否提供一些鏈接,我可以在這些主題上了解更多( ,除了selenium.org和testng.org)?
哦,好吧!謝謝您的幫助.. :) – 2014-09-01 04:16:53