我使用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();
}
/////////////////////////////////////////////
}
当使用Google Chrome执行自动测试时,您必须注意到可能有几十个Google Chrome进程正在运行,可以通过Windows任务管理器的进程
选项卡进行观察。
快照:
根据本文所述,为了获得更好的用户体验,Google Chrome为@Tests打开的每个选项卡启动了大量后台进程。谷歌试图通过将每个网页分成它认为合适的多个进程来保持chrome浏览器的稳定性,以确保如果一个进程在一个页面上失败,该特定进程可以终止或刷新,而无需杀死或刷新整个页面。
然而,从2018年起,谷歌Chrome实际上进行了重新设计,为以下每个实体创建了一个新的流程:
此外,在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是由我创建