【问题标题】:c# white, can't find element at windowc#白色,在窗口中找不到元素
【发布时间】:2016-10-09 15:08:08
【问题描述】:

抱歉打扰了,但我似乎需要你的帮助。 我真的是 C# White 框架的初学者。

问题来了…… 我正在尝试自动化 WinForm 应用程序,非常基础。

自动化的手动步骤:

  1. 打开窗口

  2. 下载文件到这个窗口

  3. 在此窗口底部查找标题

问题:我可以按任何按钮,打开对话框等等。 但是经过几个步骤我找不到标签(标题)。

我在 2 台电脑上尝试了此代码。对于一台 PC,它可以工作,对于其他 - 不起作用。 我只看到一次找到了这个标签。

通常我看到 Studio 只是挂断并尝试搜索元素。

我认为 Studio 的运行速度非常快,并且无法读取元素。你能帮我解决这个问题吗?enter image description here

        //Add file name for opening
        TextBox listLoadFile = mainWindow.Get<TextBox>(SearchCriteria.ByText("File name:"));
        listLoadFile.Text = "Omneon_72.lst";
        application.WaitWhileBusy();

        //  open file
        Keyboard.Instance.PressSpecialKey(KeyboardInput.SpecialKeys.RETURN);
        application.WaitWhileBusy();

        mainWindow.Focus();
        mainWindow.ReloadIfCached();

        //Can't find this element
        Label caption3 = mainWindow.Get<Label>(SearchCriteria.ByAutomationId("lblStatus"));

        //Can't see elements
        IUIItem[] children1 = mainWindow.GetMultiple(SearchCriteria.All);

【问题讨论】:

    标签: c# white-framework


    【解决方案1】:

    如果您不重新加载mainWindow,而是再次重新附加该进程会怎样。

        process = Process.GetProcessesByName("myProcess")[0];
        application = Application.Attach(process.Id);
        mainWindow = application.GetWindow("myWindowTitle");
    
        Label caption3 = mainWindow.Get<Label>(SearchCriteria.ByAutomationId("lblStatus"));
        IUIItem[] children1 = mainWindow.GetMultiple(SearchCriteria.All);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 2018-06-04
      • 2013-01-16
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多