I have a Test method which launches the browser and enters some text and performs remaining operations. Now I want to run the same Test method in multiple instances of the browser(both chrome or can be chrome, Mozilla). For this, I am passing the browser name and text to be entered in each browser in DataProvider.
I have tried parallel=true
for the dataprovider but it's not working as expected. It opens multiple browsers but both the data from dataprovider gets entered only in 1 browser while other remains idle.
public class test1 {
String communityURL = "https://example.com";
@DataProvider(name = "data", parallel = true)
public Object[][] data() {
return new Object[][] { new Object[] { "Chrome", "data1" }, new Object[] { "Chrome", "data2" }
};
}
@Test(dataProvider = "data")
public void runTest(String browser, String data) throws IOException, InterruptedException {
WebDriver driver;
Properties prop = new Properties();
FileInputStream fis = new FileInputStream(System.getProperty("user.dir") + "\\locators.properties");
prop.load(fis);
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\xxxx\\Downloads\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10000, TimeUnit.SECONDS);
driver.get(communityURL);
driver.findElement(By.xpath(prop.getProperty("xxx"))).sendKeys(data);
Thread.sleep(5000);
driver.findElement(By.xpath(prop.getProperty("xxx"))).sendKeys(data);
driver.findElement(By.xpath(prop.getProperty("xxxx"))).click();
driver.findElement(By.xpath(prop.getProperty("xxx"))).click();
Thread.sleep(3000);
}
}
I need to open multiple session of browsers and each browser to take each value from dataprovider ex: Session1: Chrome- data1 & Session2: Chrome- data2