首页 > 解决方案 > SFSafariViewController 和 ChromeCustomTabs 内的 Xamarin.UITest 查询元素

问题描述

我们目前正在我们的 Xamarin 应用程序中实现 Open Id Connect。因此,我们还想调整 UI 测试以使用 Xamarin.UITest 在浏览器内部进行登录。

但是,当我们尝试使用此处c => c.CSS(".css-selector")描述的选择器查询用户名和密码输入字段时,不会返回任何结果。这发生在 iOS 上的 ASWebAuthenticationSession 内部以及Android 上的ChromeCustomTabs上。

这里是选择元素的代码:

            App.EnterText(c => c.Css("input[type=\"email\"]"), "username");
            App.EnterText(c => c.Css("input[type=\"password\"]"), "password");
            App.DismissKeyboard(); // On smaller screen the login button might be hidden below the keyboard otherwise
            App.Tap(c => c.Css("button[type=\"submit\"]"));

我还尝试使用另一个选择器,如“div”或“body”,但没有返回任何内容。

错误看起来像这样Unable to enter text. Query for Css("input[type="email"]") gave no results.

SFSafariView最后是在树输出中呈现为 iOS 的。

[CalabashRootView > UIWindow]                                                                        
  [UITransitionView > UIDropShadowView]
    [UIView > UIScrollView]
      [UIView]
        [UIImageView] id: "login_logo.png"
        [UIView]
          [UIImageView] id: "loading_spinner.png"
      [_UIScrollViewScrollIndicator > UIView] label: "Vertical scroll bar, 1 page",  text: "0%" (center not on screen)
      [_UIScrollViewScrollIndicator > UIView] label: "Horizontal scroll bar, 1 page",  text: "0%" (center not on screen)
    [UIDimmingView]
  [UITransitionView]
    [UIDimmingView]
    [UIDropShadowView > ... > SFSafariView]
      [SFSafariLaunchPlaceholderView]
        [UINavigationBar]
          [_UIBarBackground]
            [_UIBarBackgroundShadowView > _UIBarBackgroundShadowContentImageView]
            [UIVisualEffectView > _UIVisualEffectBackdropView]
          [_UINavigationBarContentView]
        [UIToolbar > _UIBarBackground] id: "Toolbar"
          [_UIBarBackgroundShadowView > _UIBarBackgroundShadowContentImageView]
          [UIVisualEffectView > _UIVisualEffectBackdropView]
      [_UISizeTrackingView]
        [_UIRemoteView] id: "RemoteViewBridge"

我错过了一个步骤还是有另一种方法来测试这些场景?

标签: c#xamarinchrome-custom-tabssfsafariviewcontrollerxamarin.uitest

解决方案


推荐阅读