Xamarin UI 测试给出错误:查询标记(“Click Me!”)给出 0 个结果

我正在为示例 Xamarin 应用程序实现页面对象模式框架,当我尝试运行一个简单的测试来验证按钮单击时,出现以下错误: Query for Marked("Click Me!") 给出 0 结果。

我曾尝试在不设置框架的情况下运行测试,它运行良好,但在设置框架后,它给了我错误。

这是我的页面对象文件

namespace SampleUITests.Pages

{

    using Query = System.Func<Xamarin.UITest.Queries.AppQuery, Xamarin.UITest.Queries.AppQuery>;

    public class WelcomePage : BasePage

    {

        readonly Query ClickButton;

        readonly Query Label;

        protected override PlatformQuery Trait => new PlatformQuery

        {

            Android = x => x.Marked("Click Me!")

            //Can add iOS trait as well 

        };

        public WelcomePage()

        {

            if (OnAndroid)

            {

                Label = x => x.Marked("Welcome To Xamarin.Forms!");

                ClickButton = x => x.Marked("Click Me!");

            }


            if (OniOS)

            {

                //add iOS identifiers here

            }


        }

        public void OnClick()

        {

            app.Repl();

            app.WaitForElement(ClickButton);

            app.Tap(ClickButton);

            Assert.Equals("You clicked 1 times.", app.Query(ClickButton).First().Text);

        }


    }

}

这是我的代码,我在其中调用 Page 对象的对象并运行测试。


隔江千里
浏览 84回答 1
1回答

梵蒂冈之花

经过进一步的调试和研究,我发现应该&nbsp;ClickButton = x => x.Marked("Click Me!");通过 ID 而不是按钮上的文本来识别,因为按钮上的文本在单击时会发生变化。将标识符更改为以下内容并测试通过:ClickButton&nbsp;=&nbsp;x&nbsp;=>&nbsp;x.Id("NoResourceEntry-3");
打开App,查看更多内容
随时随地看视频慕课网APP