问题标签 [xamarin.uitest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2087 浏览

xamarin.ios - Xamarin 自动化测试 ios。无法启动 DeviceAgent 退出代码:65

无法在我的 ipad 上启动 UI 自动测试。

应用程序已安装在设备上。尝试运行任何测试时安装了 DeviseAgent。

ios版ipad 10.3.3 xcode 8.3.3

appProject 中的包:

在测试项目中:

测试设置:

关于配置文件也看起来一切正常。

问题是 - 测试正在另一台设备(带有 ios 9.2 的 ipad)上运行,并且前一段时间在当前设备上运行(不时)。所以这不应该是ios版本兼容性的问题。

还尝试删除文件夹“xdb”;

有任何想法吗?

0 投票
1 回答
82 浏览

xamarin - Xamarin.UITest 平台枚举始终返回 Android

我已经提到AppInitializer 总是为跨平台测试发布android

仍然没有任何解决方案可以帮助我,每当我默认运行 BDD 测试时,平台就会像 Android 一样获得价值。如何让它动态选择平台值?

0 投票
1 回答
251 浏览

c# - Xamarin UiTest 绑定 android:id?

我正在为实习应用程序(我还没有做过)实施 Xamarin 自动化用户界面测试。访问屏幕上可见元素的一种方法是通过它们的 ID(准确地说是 Android 中的 id)来访问它们。

所以这个想法是,在 Visual Studio 中创建应用程序的人为某个元素创建了一个模板(在 .axml 中),我在这个模板中添加了一个 android:id 但是使用这个模板的每个元素都有相同的 android:id 所以我可以'不要简单地访问特定元素。

有没有办法以编程方式绑定该 android: id 以便每个元素都有不同的 id?

0 投票
1 回答
399 浏览

c# - Xamarin UiTest 使某些测试只能在 android 或 iOS 上执行?

我为应用程序的 android 版本实现了 UITest,现在我正在尝试调整 UI 测试代码,以便它适用于 iOS 和 Android。

问题是我为 Android 测试创建了一些非常具体的功能,它们不能用于 iOS,因为视图的构思方式根本不同。

以下是我的问题:

-是否可以使某些测试功能仅在 iOS 或 Android 上可执行(只有一个,而不是两者)但在同一个 test.cs 文件中?

- 为 Android 或 iOS 组织 Ui 测试的最传统和最干净的方式是什么?

  1. 两个平台的相同项目和相同文件(“mySolution.UiTests”项目和“Testfile.cs”)
  2. 每个平台的相同项目不同文件(“mySolution.UiTests”项目和“TestfileAndroid.cs”+“TestfileiOS.cs”)
  3. 每个平台的不同项目(“mySolution.iOS.UiTests”和“mySolution.Droid.Uitests”)
0 投票
1 回答
648 浏览

xcode - Xamarin UITest 是否支持测试 iOS 11?

我目前有一个运行良好的 Xamarin UI 测试项目,直到我更新到 Xcode 9.6 beta。我收到以下错误,但在网上找不到解决方案。除了 Xcode 的版本和我正在使用之外,什么都没有改变:

System.ArgumentException : 必须为散列提供文件。参数名称:fileInfos

返回 ConfigureApp.iOS.AppBundle(pathiOsApp).DeviceIdentifier(iPhone6).StartApp(Xamarin.UITest.Configuration.AppDataMode.DoNotClear);

0 投票
1 回答
372 浏览

ios - DeviceAgent enter_text failed: KeyEventCompleted 在发送事件后等待 1.0 秒后超时

Xamarin.UITest.XDB.Exceptions.DeviceAgentException:在真实 IPAD 设备上运行时,从软键盘上按“完成”按钮或“Enter”时出现错误。在模拟器上,它工作正常。

使用的技术:MAC Book Pro IDE:Visual Studio Community 2017 设备:IPAD 2017,IOS 11 Xamarin.UITest V 2.1.3 Xamarin.TestCloud.Agent:0.21.1 Xcode 9

0 投票
1 回答
752 浏览

xamarin - Xamarin.Forms UI 测试 - 等待键盘超时

选择硬件->键盘->切换软件键盘后仍然无法正常工作。

执行 EnterText(Marked("Password"), "asdfg") 时出错
异常:System.TimeoutException:等待键盘超时。
在 Xamarin.UITest.Shared.WaitForHelper.WaitFor (System.Func 1[TResult] 谓词,System.String timeoutMessage,System.Nullable 1[T] 超时,System.Nullable 1[T] retryFrequency,System.Nullable 1[T] postTimeout) [0x000ff] in <40cdba9629c64993881ff8259cae4300>:0
在 Xamarin.UITest.iOS.iOSApp+c__AnonStorey6.<>m__0 () [0x00165] 在 <40cdba9629c64993881ff8259cae4300>:0
在 Xamarin.UITest.Utils.Erroring.Report func, System.Object[] args, System.String memberName) [0x00006] in <40cdba9629c64993881ff

0 投票
1 回答
528 浏览

c# - 如何通过在 Buttons 处理程序中执行异步方法来执行 Xamarin.Forms.UITest?

我目前正在 Xamarin.Forms 中开发适用于 iOS 和 Android 的应用程序。我正在 Windows 10 上的 Visual Studio 2017 中处理这个项目。这个应用程序在它的 PCL 中有一个 UI(视图),其标记主要在 XAML 中。此视图(称为 LoginPage.xaml/LoginPage.xaml.cs)非常适合为其编写 UITest,作为实习生,我想至少编写一些 UITest。

所以为了做到这一点,我在解决方案中添加了一个 UITest 项目。我在这个项目中添加了 NuGet NUnit2.6.4,NuGet NUnit2TestAdapter(因为根据 Xamarins 文档版本 3 及更高版本的这些 NuGet 包不受 Xamarin.UITests 的支持。)而且由于我没有 Mac,我只能在Android 设备,这意味着我必须安装适当的 Android SDK 和 Java SDK。万岁,测试本身有效。

下一步是将 AutomationId 添加到 View 的组件中(所以我给所有按钮、标签、视图等添加了 AutomationId)。我做到了。我什至有一个非常简单的测试:

这个 UITest 正是我想要的。注意代码 app.Tap(button)。已分配给此按钮的事件处理程序被点击。这导致事件处理程序中的代码被执行。事件处理程序检查插入的电子邮件地址是否有效,在这种情况下它不是有效的,因此它将反馈发送到视图。这包括将标签文本设置为“我们无法向您发送电子邮件...”。此更改发生在 C# 代码而不是 XAML 中,因为它在运行时发生更改。到目前为止,一切都像魅力一样运作。

现在变得棘手了。我在同一个项目(UITest)的同一个文件(Test.cs)中做了一个新的测试。现在,当我输入有效的电子邮件地址并点击相同的按钮时,如下所示:

相同的代码被触发。被点击的按钮的事件处理程序检查插入的电子邮件是否有效(格式化的电子邮件应该被格式化)。在这种情况下,它确实如此。这就是触发向给定电子邮件地址发送电子邮件的代码的原因。这是对 API 的调用。这意味着代码需要等待并且事件处理程序必须是异步的。事件处理程序的代码如下所示:

repo 是一个类,它进行实际的 API 调用以注册并向给定的电子邮件地址发送电子邮件。这些方法的返回类型为 Task 并且也是异步的(因为它们又需要等待 API 响应)。

这就是问题发生的地方。现在 UITest 中的代码触发了多个需要等待的方法调用,当 UITest 不再点击按钮时,UI 似乎不再执行代码。当我调试 UITest 或在 Release 和 Debug 中运行应用程序本身时,相同的代码可以正常工作并且符合预期。

有人可以帮我吗?

PS:对于代码中随机的荷兰语单词/句子感到抱歉。这些只是视图组件的名称(如按钮名称)或我的应用程序在屏幕上提供的反馈。你可以忽略这些。

0 投票
0 回答
96 浏览

ios - Xamarin UI.test 上的 app.PressEnter()

我正在尝试做 app.PressEnter(); 当键盘出现在我的 iPad 上时。出现的键盘类型可以选择“搜索”而不是“介绍”。在带有“介绍”选项的键盘上,它可以工作。

任何想法让它工作?

0 投票
3 回答
707 浏览

xamarin.ios - 如何在 Xamarin.UITest 中的页面上检索不可见元素表单列表?

我有一个包含 20 个元素的列表,当我在页面上使用 app.Query 时,Xamarin.UITest 只给了我 3 个元素,因为 UI 中只有 3 个元素可见。如何从 UITest 内的列表中检索所有 20 个元素?