2017-03-02 39 views
0

我们在Amazon EC2上创建了一堆windows Jenkins奴隶,并在供应它们之后使它们成为autologon如果RDP从未连接到Jenkins奴隶,则使用IE的Selenium悬停操作不起作用

登录后,我们使用通过Java Web Start通过执行“PS”连接奴隶回主人,有了这一切,我们可以运行硒完美地与IE不同的,我们不能比1024更高的分辨率* 768。我们得到了截图,如果与RDP连接,我们可以看到在GUI上运行的浏览器,就像在物理PC上运行一样。

但有一个缺陷,悬停操作不适用于IE,除非我们在测试开始前一次通过远程桌面连接到从站,只需连接一次,没有别的,我甚至可以关闭RDP会话。

我猜RDP连接触发的东西,只是无法弄清楚是什么。

+0

与AWS配置的Windows 2012没有Desktop Experience组件有关吗?可能是他们不支持服务器级操作系统。 – wangy23

回答

0

您可以尝试调整您的测试脚本,让他们在开始测试之前创建RDP连接,如果没有的话。这是我用我们的项目之一,以确保RDP连接处于活动状态代码:

REM check if user has an RDP session. Will store the session ID of the user in the SESSION variable 
    call :getsession computername username SESSION 

    if "%SESSION%" EQU "" (
     REM initiate an RDP connection to 'computername', wait, and disconnect by killing the process 
     mstsc.exe /v:computername & ping -n 5 1.1.1.1 & taskkill /F /IM mstsc.exe 
    ) 

    REM check again the session 
    call :getsession computername user SESSION 

    if %SESSION% NEQ "" (
     echo start your tests 
    ) 

    :getsession 
    for /F "tokens=1,2,3,4" %%i in ('query session /SERVER:%1 ^| findstr %2') do if %%j EQU %2 (SET %3=%%k) else (SET %3=%%j) 
    goto :eof 

请注意,如果您保存您从中启动远程桌面的计算机上的凭据自动连接只进行:

cmdkey /generic:computername /user:rdp_username /pass:rdp_password 

执行此操作后,mstsc.exe将能够在无用户交互的情况下连接到机器。