我正在为示例 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 对象的对象并运行测试。
1 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
经过进一步的调试和研究,我发现应该 ClickButton = x => x.Marked("Click Me!");
通过 ID 而不是按钮上的文本来识别,因为按钮上的文本在单击时会发生变化。将标识符更改为以下内容并测试通过:
ClickButton = x => x.Id("NoResourceEntry-3");
- 1 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消