我是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