Параллель для Loop Selenium C # - НЕ ТЕСТ - PullRequest
0 голосов
/ 11 октября 2018

Я хочу сделать параллельный цикл For, который откроет некоторую измененную ссылку.Но я получаю исключение, когда делаю это параллельно ..

Любая помощь?

Я искал решения онлайн и нашел только те, которые используют Nunit (Выполнение нескольких выбранных тестов - не мой случай).

Пример.

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);
            });

Исключение:

OpenQA.Selenium.WebDriverException HResult = 0x80131500 Сообщение = неизвестная ошибка: не удалось записать файл prefs (информация о драйвере: chromedriver = 2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685.164 = Windows) = 10646464 x86) Windows NT = 10x646464 x86 (Windows) = 10) Windows NT = 10x6464) x86 (nx)) = n = 86x6464) x86 (nx)), n = 0), платформа для Windows, Windows XP, Windows XP, Windows XP, Windows XP, Windows Vista, Windows XP, Windows XP, Windows XP, Windows XP, Windows XP, Windows XP, Windows XP, Windows XP, Windows XP, Windows XP, Windows XP.WebDriver StackTrace: в OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (Response errorResponse) в OpenQA.Selenium.Remote.RemoteWebDriver.Execute (строка -

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете создать метод, подобный этому:

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);
}

А затем вы можете создать другой метод или, если вы используете приложение Windows Form, вы можете использовать событие кнопки для использования задач.В вашем примере вы можете использовать событие кнопки, как это:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...