首页 > 解决方案 > How do I run multiple browsers simultaneously in Selenium without using tests? I see some use tests, but that's not what I want

问题描述

How do I run multiple browsers simultaneously in Selenium without using tests? I see some use tests, but that's not what I want. I want to put each run of a browser inside a method and then run those methods simultaneously, as many as I need. Please help, I'm not getting much like finding an answer.

标签: c#seleniumselenium-webdriverautomationselenium-chromedriver

解决方案


您可以简单地使用在普通测试项目中使用的相同 Selenium 库,但将它们添加到非测试项目(如控制台应用程序)。

在不确切知道您通过运行多个浏览器尝试完成什么的情况下,我只能给出下面的示例,即创建多个 Web 浏览器并让每个浏览器导航到提供的 url:

    var urls = new string[] {"https://google.com/", "https://www.wikipedia.org/", "https://stackoverflow.com"};
    
    // A list for storing each ChromeDriver instance or whatever driver you use (Firefox, Edge, Chrome)
    var chromeDrivers = new List<ChromeDriver>();
    
    // Add three separate browser sessions to your list (or however many you need)
    for(int i = 0; i < 3; i++)
    {
        chromeDrivers.Add(new ChromeDriver());
    }
    
    // Navigate to a unique URL for each browser session
    for(int i = 0; i < chromeDrivers.Count(); i++)
    {       
        chromeDrivers[i].Navigate().GoToUrl(urls[i]);
    }
    
    // End the webdriver sessions (close and dispose)
    for(int i = 0; i < chromeDrivers.Count(); i++)
    {
        chromeDrivers[i].Quit();
    }
    

上面的示例应该向您展示三个单独的浏览器窗口,它们都导航到不同的 url:

在此处输入图像描述


推荐阅读