Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 需要关闭';另存为';e2e测试中的窗口。SendKey使用C#_Winapi_Uac_Sendkeys_E2e Testing_Setforegroundwindow - Fatal编程技术网

Winapi 需要关闭';另存为';e2e测试中的窗口。SendKey使用C#

Winapi 需要关闭';另存为';e2e测试中的窗口。SendKey使用C#,winapi,uac,sendkeys,e2e-testing,setforegroundwindow,Winapi,Uac,Sendkeys,E2e Testing,Setforegroundwindow,我需要实现e2e自动测试打印到文件,作为使用GUI模拟打印过程。我有 在selenium和nunit下运行的Web应用程序。它按下打印按钮 安装在计算机上的打印应用程序。它将数据从web服务器打印到用户的打印机或文件(默认XPS Windows打印机),以满足测试需要 使用安装了TFS代理的专用服务器作为前台控制台应用程序以“管理员”身份运行的自动化e2e测试过程 我已注销,由调度程序在CI服务器上测试运行 我必须: 处理“将文件另存为”窗口,该窗口必须保存打印的xps文件(或pdf,如果将使用

我需要实现e2e自动测试打印到文件,作为使用GUI模拟打印过程。我有

  • 在selenium和nunit下运行的Web应用程序。它按下打印按钮
  • 安装在计算机上的打印应用程序。它将数据从web服务器打印到用户的打印机或文件(默认XPS Windows打印机),以满足测试需要
  • 使用安装了TFS代理的专用服务器作为前台控制台应用程序以“管理员”身份运行的自动化e2e测试过程
  • 我已注销,由调度程序在CI服务器上测试运行
  • 我必须: 处理“将文件另存为”窗口,该窗口必须保存打印的xps文件(或pdf,如果将使用pdf打印机):

  • 设置文件名。我使用SendKyes.SendWait(我的文件名)
  • 按OK按钮。SendKyes.SendWait(“{ENTER}”)

  • 接下来的问题是:

    若我登录到运行测试的专用服务器(通过RDP),一切正常,文件将被保存,因为窗口将被处理

    如果我从服务器注销,SetForeground将返回0,文件将不会保存,窗口将打开

    我知道Windows 7+的UAC限制。UAC完全被禁用了。我们使用Windows server 2012。 我需要一些变通办法。可能向UAC了解此操作,更改寄存器,可能使用某种方法或库

    我当然用

    <add key="SendKeys" value="SendInput"/>
    

    解决方案之一:


    断开连接时也可以:

    您不使用的原因是什么?除其他外,它的发明是为了实现GUI的自动化测试。1。我不使用它,因为它主要是一个web应用程序。我用硒和量角器。我唯一需要与GUI交互的时刻就是这个打印文件功能。另外,当我是开发人员2时,我不熟悉这个框架。问题是在最后一次设置时发现的。UI自动化是否有助于避免注销时出现GUI自由模式问题?
    1
    这不是不使用UI自动化的原因<代码>2
    由于UI自动化不需要前台激活,因此它可能是一个更健壮的解决方案,尤其是在这些情况下。也许吧。如果我们确信它不需要像关于TestComplete framework的文章中那样登录(用于CI),那么使用它是合理的。他们的论点和例子看起来很合理。1.我担心,当从CI服务器运行时,即使在Ui自动化中,GUI测试也无法在桌面的非GUI模式下工作。我错了吗?2.我可以从nunit测试中使用Ui自动化吗?我不知道,Ui自动化是否在无GUI模式下工作。但如果有什么问题的话,我会首先评估事实上的自动化标准是否适用。是暴露于.NET框架的,因此从NUnit测试中使用它应该是完全合理的。有什么原因不使用它吗?除其他外,它的发明是为了实现GUI的自动化测试。1。我不使用它,因为它主要是一个web应用程序。我用硒和量角器。我唯一需要与GUI交互的时刻就是这个打印文件功能。另外,当我是开发人员2时,我不熟悉这个框架。问题是在最后一次设置时发现的。UI自动化是否有助于避免注销时出现GUI自由模式问题?
    1
    这不是不使用UI自动化的原因<代码>2由于UI自动化不需要前台激活,因此它可能是一个更健壮的解决方案,尤其是在这些情况下。也许吧。如果我们确信它不需要像关于TestComplete framework的文章中那样登录(用于CI),那么使用它是合理的。他们的论点和例子看起来很合理。1.我担心,当从CI服务器运行时,即使在Ui自动化中,GUI测试也无法在桌面的非GUI模式下工作。我错了吗?2.我可以从nunit测试中使用Ui自动化吗?我不知道,Ui自动化是否在无GUI模式下工作。但如果有什么问题的话,我会首先评估事实上的自动化标准是否适用。是暴露于.NET框架的,因此从NUnit测试中使用它应该是完全合理的。
    <add key="SendKeys" value="SendInput"/>