我正试图清理我们的UI自动化测试的过程。
现在,我们有一个控制台应用程序,我们运行在一个服务器上,它使用Apache侦听RPC调用,取决于正在运行的测试,这个应用程序要么使用用户指定的浏览器(Chrome、IE、Firefox)启动Selenium,要么启动我们的WPF桌面应用程序。
我的目标是允许这个控制台应用程序以windows服务的形式运行,供一对用户使用:
因此,我的问题是提供了一个没有活动用户会话的服务器,并且这个服务正在运行,该服务是否有可能同时使用web浏览器和WPF应用程序旋转Selenium,并且仍然能够驱动它们。
如果这是不可能的,那么以编程方式登录到服务器上呢?
发布于 2014-01-08 00:02:15
唯一能做到这一点的方法是使用PhantomJS (或其他一些无头浏览器)。Windows服务无法访问桌面上正在运行的浏览器(尽管它们以前用于Windows XP和Windows 2000 Server days中)。从那时起,微软就锁定了这些权限,即使你看到服务上的“与桌面交互”复选框,我不认为它会起作用。
此外,Selenium Grid服务器必须在远程服务器上的前台运行(出于同样的原因)。唯一的例外是,使用网格上的PhantomJS,网格服务器可以作为服务运行,以启动无头浏览器。当然,将Grid节点作为服务运行,将网格中心作为服务进行配置(使用YAJSW)并不是一件简单的事情,但它是可行的。如果你走那条路,你的学识可能会有所不同,因为我还没有试过。这个想法是,您可以编写批处理DOS脚本来启动/注册YAJSW以作为服务运行网格。
https://stackoverflow.com/questions/20981614
复制相似问题