我正在运行 Azure Pipelines (DevOps) 管道,该管道将我的自动化测试解决方案构建到 dll 中,并加载该 dll 以获取所有集成自动化测试。
我正在使用默认的云“主机”代理来运行自动化。但是,驱动程序会抛出大量错误。我认识到这些错误与我通过 Jenkins 设置自动化时遇到的错误相同——当我将 Jenkins 作为服务运行时。
为了解决 Jenkins 中的问题,我停止将其作为 Windows 服务运行,并开始在 Powershell 中将其作为 java -jar Jenkins.war 命令启动。这允许 selenium 驱动程序在 VM 桌面上正常启动浏览器,而不是完全在内存中运行浏览器实例和驱动程序。
因此,当它完全在内存中运行浏览器窗口和驱动程序时,我收到了与我现在在 Azure Pipelines 中的主机代理上遇到的相同的驱动程序错误。问题是我找不到如何让代理在 VM 桌面上运行测试。我不知道从哪里开始解决这个问题,并且似乎无法在网上找到任何关于此的信息。
编辑:尽可能清楚。发生的唯一错误是“$ 未定义”。这是因为 DOM 无法正确加载,因为浏览器可执行文件和驱动程序可执行文件完全在内存中无头运行。我需要能够在主机的渲染部分运行可执行文件。所以,我的意思是,如果我要远程桌面进入这台机器,我会积极地看到浏览器窗口渲染和自动化运行。但是现在,如果我要远程访问此 VM,我会在 TaskManager 中看到 chrome.exe 和 chromedriver.exe,但在桌面上看不到任何内容。
我找到了答案。
您必须手动配置主机以无头运行 Selenium。这将阻止一切都作为服务运行,它纯粹在内存中,没有 UI 组件。这就是我提到的Jenkins在将Jenkins作为服务运行时遇到的问题。
Jenkins 使用 GUI 运行自动化的修复最终与 Azure 管道中的托管代理相同。这只是一个手动配置。这是通过管道中的插件和构建步骤完成的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句