编码的 UI 测试。在"打开文件"对话框中找不到列表项



我正在测试一些带有编码UI的Windows应用商店应用程序。在我的情况下,我应该通过打开文件对话框打开一些文件。我为主页和打开窗口创建UI映射。OpenWindowMap和控件添加正常它看起来很正常,直到我的程序试图找到列表项来选择文件。

这是我试图查找List项控件的代码的一部分。

Gesture.Tap(MainMap.UIAppUnderTest.UIPlusPopupWindow.UIItemMenu.UIOpenfileMenuItem);
OpenWindowMap.OpenWindow.WaitForControlExist();
Gesture.Tap(OpenWindowMap.OpenWindow.TopItemsPane.ChooseFolderPane);
Keyboard.SendKeys(Classes.Core.TestDirPath);
Keyboard.SendKeys("{ENTER}");
Gesture.Tap(OpenWindowMap.OpenWindow.UIItemsViewList.UI0ListItem);

在最后一个raw中,我得到了这样的解释:

Test method AppUnderTestCUIT.Tests.PlaylistTest1.PlaylistFormatsTest threw exception: 
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException:
The playback failed to find the control with the given search
properties. 
Additional Details:  
TechnologyName:  'UIA' 
FrameworkId: 'DirectUI' 
AutomationId:  '0' 
--->
System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.

有人有主意吗?

您能从UIMap编辑器中找到控件吗?Visual Studio找到它们了吗?我在你的代码中没有看到你试图找到控件。您只需等待Playback设置中指定的默认时间,然后继续执行操作。如果在UI上找不到控件,则会从上面得到异常。

尝试使用Locate Control选项从UIMap编辑器中查找控件。

您的搜索属性包含有关控件的一些详细信息。这可能是问题所在。特别是你的AutomationID通常不应该是"0"。如果是"0",请您的开发团队为您提供一些相同且有意义的AutomationID

欢呼,Alex

我也遇到了同样的问题,我很惊讶MS编码的UI无法与MS Windows文件浏览器很好地交互。

最后,我用鼠标点击了窗口底部的"文件名:"文本框。这是在这个窗口上使用编码用户界面的为数不多的事情之一。然后,我选择了"生成代码",将其命名为"Common_Filebrowser_Filename"。

然后我打开"UIMap.uitest",找到我的方法"Common_Filebrowser_Filename",右键单击并选择"将代码移动到UIMap.cs"。我不知道你是否熟悉这个选项。如果你不这样做,当你记录下一次测试时,你所做的代码更改会被覆盖!

最后,我写了下面的代码,你可以在评论之间看到我的自定义代码。。。

    [TestMethod()]
    public void FindFile()
    {
        this.UIMap.Common_Filebrowser_Filename();
        //Custom code to find file....
        //Enter Directory
        String directory = "C:\myDir\testFiles";
        foreach (char c in directory)
        {
            Keyboard.SendKeys(c.ToString());
        }
        //Enter filename
        String file = "\myTestFile";
        foreach (char c in file)
        {
            Keyboard.SendKeys(c.ToString());
        }
        //End of custom code to find file
    }

免责声明:我使用的是Windows 10(最新版本),VS2017(最新)。如果我在文件浏览器存储文件扩展名的地方运行,我还没有尝试确定是否需要更改测试方法以包含文件扩展名。在我的情况下,扩展名是隐藏的,我不知道显示文件扩展名是否会混淆我的测试。

我也坦率地承认,文件名之前的2个反斜杠可能应该在目录的末尾,而不是在文件的开头,但我还没有测试过这种更改。

您必须记录自己的测试,才能单击"文件浏览器"窗口右下角的"打开"按钮。

我希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新