我正在為示例 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 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消