c# - 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"
我错过了一个步骤还是有另一种方法来测试这些场景?
解决方案
推荐阅读
- python - 我想使用 sshtunnel 重新连接并使用 pythonanywhere 数据库查询数据库
- android - 需要在 Recyclerview 水平方向内一次显示两个项目
- git - 无法从 git 镜像触发 Jenkins MultiBranch Pipeline 作业
- vue.js - 访问状态时:未知突变类型
- java - Java:PrintWriter 是否提供了某种形式的关于请求源平台首选行结尾的“线索”?
- react-native - 如何在 React Native 0.63 中滚动到滚动视图的底部?
- html - 制作响应式 CSS 网格
- maven - 使用 Evosuite 生成的测试用例进行 Maven 测试
- apache-spark - 使用 Spark 将数据加载到元组中
- django - 如何将类添加到 django ModelForms 文件字段