Parallel For Loop Selenium C# - NOT A TEST

0

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 –

c#
selenium
google-chrome
asked on Stack Overflow Oct 11, 2018 by user3545490 • edited Oct 11, 2018 by Jacob H

1 Answer

0

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
}
answered on Stack Overflow Oct 11, 2018 by ggeorge • edited Nov 10, 2019 by ggeorge

User contributions licensed under CC BY-SA 3.0