Я реализую структуру шаблона объекта страницы для образца приложения Xamarin, и когда я попытался запустить простой тест для проверки нажатия кнопки, я получаю следующую ошибку: Запрос для отмеченного («Щелкните меня!») Дал 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 и запускаю тест.
namespace SampleUITests
{
[TestFixture(Platform.Android)]
[TestFixture(Platform.iOS)]
public class Tests : BaseTestFixture
{
public Tests(Platform platform) : base(platform)
{
//this.platform = platform;
}
[Test]
public void VerifyButtonClick()
{
WelcomePage welcomepage = new WelcomePage();
welcomepage.OnClick();
}
}
}
Я ожидаю пройти тест, который проверяет нажатие кнопки и текст на кнопке (вы нажали 1 раз.), Но я получаю следующую ошибку:
Android test running Xamarin.UITest version: 3.0.3
Initializing Android app on device emulator-5554 with apk: C:\Users\Sayali.Sheode\AppData\Local\Xamarin\Mono for Android\Archives\2019-08-16\FirstXamarinApp.Android 8-16-19 9.17 AM.apkarchive\com.companyname.firstxamarinapp.apk
Skipping local screenshots. Can be enabled with EnableScreenshots() when configuring app.
Signing apk with Xamarin keystore.
Skipping installation: Already installed.
Waiting for element matching Marked("Click Me!").
Waiting for element matching Marked("Click Me!"). Using element matching Marked("Click Me!"). Tapping coordinates [ 540, 1731 ].
Query for Marked("Click Me!") gave 0 results.
Также это трассировка стека:
Message:
System.InvalidOperationException : Sequence contains no elements
Stack Trace:
at Enumerable.First[TSource](IEnumerable`1 source)
at WelcomePage.OnClick() in WelcomePage.cs line: 43
at Tests.VerifyButtonClick() in Tests.cs line: 36