当前位置: 首页 > 知识库问答 >
问题:

镀铬器。exe运行~8个chrome。exe实例

柳英资
2023-03-14

我使用Selenium编写UI自动化测试。我注意到,当我创建一个chromedriver实例时。exe-

运行1个测试时的任务管理器屏幕截图:

所以,当我并行运行时,比如说,8个测试任务管理器中有很多chrome.exe实例,它们使用一些端口并加载CPU和内存。

它是设计好的吗?为什么这么多铬。一个chromedriver需要exe实例。exe?这是可配置的吗?

在我的代码中,我只有一个“Chrome”类。它的构造函数创建一个新的chromedriver。exe实例:

Chrome chrome = new Chrome();

public class Chrome
{
    public OpenQA.Selenium.Chrome.ChromeDriver Driver;

    public Chrome(bool incognitoMode = false, bool maximizeWindow = true)
    {
        ChromeOptions options = new ChromeOptions();
        if (incognitoMode)
        {
            options.AddArguments("--incognito");
        }

        Driver = new ChromeDriver(options);
        Driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(360);
        if (maximizeWindow)
            Driver.Manage().Window.Maximize();
    }
  /////////////////////////////////////////////
}

共有1个答案

姬经义
2023-03-14

当使用Google Chrome执行自动测试时,您必须注意到可能有几十个Google Chrome进程正在运行,可以通过Windows任务管理器的进程选项卡进行观察。

快照:

根据本文所述,为了获得更好的用户体验,Google Chrome为@Tests打开的每个选项卡启动了大量后台进程。谷歌试图通过将每个网页分成它认为合适的多个进程来保持chrome浏览器的稳定性,以确保如果一个进程在一个页面上失败,该特定进程可以终止或刷新,而无需杀死或刷新整个页面。

然而,从2018年起,谷歌Chrome实际上进行了重新设计,为以下每个实体创建了一个新的流程:

  1. 选项卡
  2. 页面上的HTML/ASP文本
  3. 已加载的插件
  4. 已加载的应用程序
  5. 页面中的框架

此外,在Chromium博客中提到:

Google Chrome利用这些特性,将web应用程序和插件与浏览器本身分开放置。这意味着一个web应用中的渲染引擎崩溃不会影响浏览器或其他web应用。这意味着操作系统可以并行运行web应用程序以提高响应速度,也意味着如果某个web应用程序或插件停止响应,浏览器本身不会锁定。这还意味着我们可以在限制性的沙箱中运行渲染引擎进程,这有助于限制攻击发生时的损害。

作为结论,您看到的许多流程都是经过设计的,并且与Google Chrome当前的实现保持一致。

 类似资料:
  • 作为项目设置的一部分,我有两个项目,一个作为库,另一个作为Selenium。我在libraries项目中设置了所有浏览器,其中/src/main/resource具有chromedriver。exe Selenium项目具有所有pagefactory类,并且该项目依赖于库。但是,当我在从属服务器上运行project时,我收到以下错误消息:

  • 问题内容: 因此,我阅读了有关将chromedriver添加到我的路径中的所有文档,并遵循了所有文档。我在装有selenium2,maven,eclipse和所有最新驱动程序的Mac上: 我将chromedriver放在我的Applications文件夹中,路径如下: 我想念什么?我根本无法使用chrome驱动程序运行。任何帮助都会很棒,我现在正在尝试随机的东西。 这是我关于selenium的po

  • 问题内容: 有什么方法可以在Linux中运行(winform应用程序的).NET exe, 而无需 在Linux中 构建代码? 实际上,我没有我先前开发的某些实用程序的代码,而是想在Linux中运行它们。 问题答案: 单核细胞增多症 !http://mono-project.com/Main_Page 也很棒。越来越多的社区中有越来越多的工具支持,C#编译器等。

  • 当我在给定文件夹中运行Eclipse.exe时,它不会启动。Eclipse启动屏幕将出现一瞬间,然后关闭。没有错误。 我几乎什么都试过了。更新JDK和JRE:我安装了JRE 7和JDK 1.7.040。它们都是64位的,都在(x86)文件夹中。我试过重新安装。重新下载Eclipse。每次都是一样的结果。我已经将虚拟机添加到配置中,但仍然没有添加任何内容。 我使用Windows 7和标准Eclips

  • 问题内容: 我有一个巨大的JAR文件,是使用插件创建的。 我使用来运行它,并且UI随即打开。现在我要执行该文件,该文件也位于该JAR文件中,该怎么办? 我尝试将exe放到我的类路径中并从那里运行它,但尝试后发现类路径实际上是我的JAR所在的位置。 有什么建议? 在这里找到了这个东西,但这真的是最好的解决方案吗?似乎很多工作,我觉得这里有不同的情况,因为我可以自己定义exe的位置,而JAR是由我创建