I wanna make a parallel For loop that will open an some changed link. But I get an exception when I'm doing it in parallel..
Any Help?
I searched for solutions online and only found ones that are using Nunit (Runming few selected test - Not my case).
Ex.
Parallel.For(0, 5, i => {
#region Driver Init
ChromeOptions options = new ChromeOptions();
options.AddArguments("--user-data-dir=C:\\Users\\Galdo\\AppData\\Local\\Google\\Chrome\\User Data");
options.AddArguments("--profile-directory=Profile 1");
ChromeDriver chromeDriver = new ChromeDriver(options);
#endregion chromeDriver.Navigate().GoToUrl("https://www.youtube.com/id="+i);
});
Exception :
OpenQA.Selenium.WebDriverException HResult=0x80131500 Message=unknown error: failed to write prefs file (Driver info: chromedriver=2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685c27d5),platform=Windows NT 10.0.17134 x86_64) Source=WebDriver StackTrace: at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String –
You could make a method like this one:
public void MyMethod()
{
ChromeOptions options = new ChromeOptions();
options.AddArguments("--user-data-
dir=C:\\Users\\Galdo\\AppData\\Local\\Google\\Chrome\\User Data");
options.AddArguments("--profile-directory=Profile 1");
ChromeDriver chromeDriver = new ChromeDriver(options);
}
And then you can make another method or if you use windows form application maybe you can use a button event for using tasks. In your example you could use a button event like this:
private void btn_Click(object sender, EventArgs e)
{
var task1 = Task.Factory.StartNew(() => MyMethod()); // you could add some arguments in your method
var task2 = Task.Factory.StartNew(() => MyMethod()); // maybe with different args
...
... // as many tasks you want, in your case 5
}
User contributions licensed under CC BY-SA 3.0