首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin.Forms UI自动化测试WaitForElement WebView始终超时

Xamarin.Forms UI自动化测试WaitForElement WebView始终超时
EN

Stack Overflow用户
提问于 2019-08-28 08:06:32
回答 3查看 520关注 0票数 0

我的Xamarin.Forms应用使用Azure AD B2C进行身份验证。它工作得很好。我现在正在尝试构建UI自动化测试,但我遇到了我的第一个拦截器。我一直在尝试等待WebView出现在屏幕上,这样我就可以在ui测试自动化脚本中输入测试用户的电子邮件和密码,但是WaitForElement方法总是超时!

代码语言:javascript
复制
[Test]
public void RegistrationStarts()
{
    app.Screenshot("Welcome screen.");

    app.WaitForElement(c => c.WebView());
    app.Tap(c => c.WebView().Css("input#logonIdentifier"));
    app.EnterText("sample@example.com");

}

我不知道为什么。我只在Android上测试。我注意到Azure AD B2C登录web视图显示在我的应用程序中。我能说出这一点是因为当我打开Android任务切换器时,我可以看到Chrome和我的应用程序。

EN

回答 3

Stack Overflow用户

发布于 2019-10-05 05:02:53

在id之前使用input有什么原因吗?如果logonIdentifier是您想要输入的ID,那么它应该是

代码语言:javascript
复制
app.Tap(c => c.WebView().Css("#logonIdentifier"));

此外,如果logonIdentifier是要在其中键入的TextBox,则输入文本应为

代码语言:javascript
复制
_app.EnterText(c => c.WebView().Css("#logonIdentifier"), "sample@example.com");
票数 0
EN

Stack Overflow用户

发布于 2019-11-05 19:00:33

您可以尝试使用timeout - time等待元素,单位为毫秒、秒和分钟。

app.WaitForElement(x => x.Marked("AutomationID"),timeout:TimeSpan.FromSeconds(90));

https://docs.microsoft.com/en-us/dotnet/api/xamarin.uitest.iapp.waitforelement?view=xamarin-uitest-sdk

票数 0
EN

Stack Overflow用户

发布于 2021-01-14 21:28:09

您似乎正在使用systembrowser而不是WebView

使用WebView更改获取令牌的方法。

代码语言:javascript
复制
AuthenticationResult authResult = await _pca.AcquireTokenInteractive(B2CConstants.Scopes)
                .WithUseEmbeddedWebView(true)
                .ExecuteAsync();

https://github.com/microsoft/appcenter/issues/287#issuecomment-484151924

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57683510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档