允许 webdriver 浏览器从 Windows 10 服务在桌面上弹出

Posted

技术标签:

【中文标题】允许 webdriver 浏览器从 Windows 10 服务在桌面上弹出【英文标题】:Allow webdriver browser to popup on desktop from Windows 10 Service 【发布时间】:2019-02-20 19:30:48 【问题描述】:

所以我的理解是,从 Windows Vista 开始,他们已禁用 Windows 服务以与桌面交互,但我只是想知道是否有适合我需要的解决方法

所以,我在 Jenkins 代理上运行了 4 个不同的 Selenium 网格,还有一个将运行节点的桌面。并且当管道启动时,它会向作为 Windows 服务运行的节点服务器发送一个带有其网格 IP 地址的 Http 调用。

POST windows_service_node_server/startnode

当windows服务服务器收到请求时,它会启动一个节点并通过运行一个批处理文件将hub连接到相应的Jenkins selenium Grid

java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.8.1.jar -role node -hub http://jenkins_hub_address:4444/grid/register -nodeConfig nodeConfig.json

问题是所有 selenium 测试都在后台运行,而前台没有浏览器。

这很好,但如果可能的话,我希望实际看到浏览器实例弹出窗口。

如果我不将服务器作为 Windows 服务运行,它将在前台启动浏览器并正常工作。

有人有解决方法吗?

【问题讨论】:

【参考方案1】:

您可以在 Microsoft 的有关 Interactive Services 的文章中看到:

从 Windows Vista 开始,服务无法直接与用户交互。因此,不应在新代码中使用标题为“使用交互式服务”一节中提到的技术。

如果您想测试您的设置,您可以在登录时启动网格节点。如果您想查看被测系统,您可以获取远程截图。如果您需要监控,可以使用一些工具来检查远程机器上正在运行的进程。

但是让设计为在无人看管的情况下运行的服务与屏幕交互是一个坏主意,因此 Windows 开发人员从技术上阻止了这种情况。

【讨论】:

以上是关于允许 webdriver 浏览器从 Windows 10 服务在桌面上弹出的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium Webdriver 处理浏览器级别的通知

火狐浏览器webdriver驱动为什么没有win64

windows7下webdriver打开firefox浏览器后无响应,卡住了

Webdriver实现下载功能,屏蔽掉windows弹出的对话框,FireFox下设置浏览器的属性,两种实现方式:

使用 selenium webdriver 在 Windows 上设置 firefox 二进制文件的路径

windows7 python3.63使用selenium+webdriver 实现自动登录使用过程