Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
C# teststack白色在登录窗口之后获取主窗口_C#_.net_Nunit_White Framework - Fatal编程技术网

C# teststack白色在登录窗口之后获取主窗口

C# teststack白色在登录窗口之后获取主窗口,c#,.net,nunit,white-framework,C#,.net,Nunit,White Framework,我正在使用Teststack white自动化windows应用程序,目前的问题是,在登录主应用程序后,white似乎找不到新窗口 var pathAp = appPath(path); Application application = Application.Launch(pathAp); Window window = application.GetWindow("login"); TextBox userName = window.Get

我正在使用Teststack white自动化windows应用程序,目前的问题是,在登录主应用程序后,white似乎找不到新窗口

 var pathAp = appPath(path);
        Application application = Application.Launch(pathAp);
        Window window = application.GetWindow("login");
        TextBox userName = window.Get<TextBox>("userName");
        TextBox pass = window.Get<TextBox>("pass");
        userName.Enter("user1");
        pass.Enter("pass");
        Button login = window.Get<Button>("login");
        login.Click();
        //now the program will wait and the main window will show up
        Window mainWindow = application.GetWindow("main");
var-pathAp=appPath(路径);
应用程序=Application.Launch(pathAp);
Window Window=application.GetWindow(“登录”);
TextBox userName=window.Get(“用户名”);
TextBox pass=window.Get(“pass”);
用户名。输入(“user1”);
通过。输入(“通过”);
按钮登录=window.Get(“登录”);
login.Click();
//现在程序将等待,主窗口将显示
windowmainwindow=application.GetWindow(“main”);
由于某种原因,程序抛出一条错误消息,表示找不到窗口。
任何想法都要感谢

所以我知道在登录到应用程序后发生了什么,新的进程ID出现了,而不是旧的进程ID,所以我使用application.Attach()方法来获取新的“应用程序”,Attach方法以PID作为参数,为了得到这个结果,可以使用以下方法process.getProcessByName(),然后,您可以获得进程的ID,该ID最终可以传递给attach方法。

如果您还有新代码,您可以发布新代码吗?因为我遇到了同样的问题,并试图解决这个问题。var process=process.getProcessByName(“应用程序名称”)[0];app=Application.Attach(process.Id);window2=app.GetWindow(“利润版4.4.24”);您是否也这样做了?我想问您,您使用什么样的工具来定位UI元素?有点不同:)TestStack.White.Application application1=TestStack.White.Application.Launch(@“c:\path\app.exe”);application1.Process.WaitForExit();TestStack.White.Application mainApplication=TestStack.White.Application.Attach(“应用程序”);当然,如果有更多相同的应用程序被打开,这个方法就会出错,所以在打开之前,我会杀死所有使用这个应用程序名称的程序。我有一个可视化的UI应用程序验证工具。