小编reu*_*sey的帖子

如何使用Espresso访问外部网站上的元素

使用espresso,我们点击一​​个登录按钮,启动外部网站(Chrome自定义标签),您可以登录,然后重定向回我们的Android应用程序.

Espresso有没有办法:
1)验证正在启动的URL
2)访问网站上的元素,以便我可以输入登录信息并继续登录

在此输入图像描述

当我尝试在咖啡启动导航查看它,什么也不显示的页面,如果我尝试记录,它不会对我拿起进入页面上的任何内容.

这是我到目前为止(它在Kotlin(而不是Java)): 在此输入图像描述

这是显示的错误: 在此输入图像描述

它启动我的应用程序,选择登录按钮,打开网站,但它无法访问元素.

我也尝试过:

在此输入图像描述

更新:这是使用Chrome自定义标签(不是网络视图),因此Espresso Web无法使用.

android android-espresso android-uiautomator chrome-custom-tabs android-espresso-recorder

8
推荐指数
1
解决办法
2026
查看次数

量角器允许通知Chrome 46

Chrome只是自动更新到版本46.我正在尝试运行我的量角器测试,但我现在总是会弹出允许通知.有谁知道怎么解决这个问题?我怎么能让它总是允许我的测试通知?

在此输入图像描述

我在这里找到了chrome pref选项:http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/pref_names.cc?view = markup

并尝试使用profile.managed_default_content_settings.notifications仍然无法使其工作.我不确定该pref的预期价值?不确定我在哪里可以找到它.有没有人看到这个有什么问题:

在此输入图像描述

notifications selenium google-chrome selenium-chromedriver protractor

7
推荐指数
1
解决办法
1728
查看次数

有没有办法用Espresso测试Chrome自定义标签?

这是代码的存根。

单击上的数据项ListView。按照设计方式工作并打开Chrome自定义标签

onData(anything()).inAdapterView(withId(R.id.listView))
                                       .atPosition(0).perform(click());

Pause(5000);
Espresso.pressBack();
Run Code Online (Sandbox Code Playgroud)

似乎无法评估标签中的任何内容,甚至无法点击设备后退按钮。得到这个错误

Error : android.support.test.espresso.NoActivityResumedException: No 
activities  in stage RESUMED.
Run Code Online (Sandbox Code Playgroud)

您是否忘了发起活动。(test.getActivity() 或类似)?

android listview android-espresso chrome-custom-tabs

5
推荐指数
1
解决办法
1256
查看次数

Android Espresso - 如何为所有测试只运行一次设置

我正在使用 Espresso/Kotlin 为我们的 Android 应用程序运行测试,我想为给定测试类中的所有测试运行一次设置。

我创建了一个伴随对象来启动应用程序一次(它确实启动了),但是它会在每次测试运行时关闭并且不会保持打开状态。

在此处输入图片说明

如何让它启动应用程序,运行测试类中的所有测试,然后关闭应用程序?

我也尝试了以下操作,但它仍然启动一次然后关闭,然后尝试运行测试: 在此处输入图片说明

android kotlin android-espresso

5
推荐指数
1
解决办法
1649
查看次数

VueJS 自动化 - Test Cafe 与 Nightwatch - 优点/缺点

我正在考虑为 VueJS 应用程序创建自动化测试用例,该应用程序将在多个不同的桌面浏览器和移动(iOS 和 Android)浏览器中得到支持。我遇到了几个选项,包括 Protractor、Test Cafe、Nightwatch 和 Cypress。Cypress 仅受 Chrome 浏览器支持,因此我无法使用它,而 Protractor 似乎更适合测试 Angular 应用程序。所以我正在寻找使用过 Test Cafe 或 Nightwatch 的人的反馈。

问题

  1. 您觉得这两种工具中哪一种更好,为什么?
  2. 一个与另一个的优缺点是什么?(基于硒与非对我来说无关紧要)
  3. 是否支持移动浏览器测试?
  4. 有没有人有任何问题阻止您使用它并采用另一种方法?

testing nightwatch.js vue.js vuejs2 testcafe

5
推荐指数
1
解决办法
3051
查看次数

XCTest 测试运行程序在完成运行测试之前退出并显示代码 -1

我们正在运行 Xcode 12.4,并且在运行 XCUITest 测试时不断随机看到以下错误:

The test runner exited with code -1 before finishing running tests
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我们可以重新运行失败的测试,它们就会通过。有谁知道这个错误的原因或如何修复它?直到我们从 11.3 升级到 12.4 后我才看到它,但不确定它是否是 12.4 特有的。

ios xctest xcuitest xcode12

5
推荐指数
1
解决办法
3285
查看次数

Gradle 托管设备无法从测试执行器接收测试结果

使用gradle版本8.0.2

我正在使用 gradle 托管设备在 2 个模拟器上并行运行 Android Espresso 测试。我使用以下命令运行它:

./gradlew pixel4api31DebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.xxx.yyy.zzz.Suites.CITestSuite -Pandroid.experimental.androidTest.numManagedDeviceShards=2 --enable-display -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
Run Code Online (Sandbox Code Playgroud)

测试完成后,我看到以下错误:

Could not receive test results from the test executor.
io.grpc.StatusRuntimeException: CANCELLED: client cancelled
        at io.grpc.Status.asRuntimeException(Status.java:526)
        at io.grpc.stub.ServerCalls$StreamingServerCallHandler$StreamingServerCallListener.onCancel(ServerCalls.java:284)
        at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closedInternal(ServerCallImpl.java:353)
        at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closed(ServerCallImpl.java:341)
        at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1Closed.runInContext(ServerImpl.java:844)
        at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
        at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
        at java.base@11.0.18/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base@11.0.18/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base@11.0.18/java.lang.Thread.run(Thread.java:829)
Run Code Online (Sandbox Code Playgroud)

56m 28s 内构建失败

当我导航到结果位置时:测试执行已完成。查看报告:file:///Users/xxx/repos/android/test/app/build/reports/androidTests/managedDevice/allDevices/index.html

它表明所有测试都成功通过: 在此输入图像描述

有谁知道我如何修复此错误,因为无法看到导致构建失败的测试结果?

./gradlew -v

------------------------------------------------------------
Gradle 8.0.2
------------------------------------------------------------

Build time:   2023-03-03 16:41:37 UTC
Revision:     7d6581558e226a580d91d399f7dfb9e3095c2b1d

Kotlin:       1.8.10
Groovy:       3.0.13
Ant:          Apache Ant(TM) version 1.10.11 compiled on July …
Run Code Online (Sandbox Code Playgroud)

android gradle android-espresso grpc gradle-managed-device

5
推荐指数
0
解决办法
406
查看次数

通过 gradle 托管设备运行测试时显示 android 模拟器

通过gradle 托管设备运行 android espresso 测试时,即运行:

./gradlew pixel4api30DebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aaa.bbb.ccc.Suites.TestSuite -Pandroid.experimental.androidTest.numManagedDeviceShards=3
Run Code Online (Sandbox Code Playgroud)

是否可以在运行测试时显示模拟器,以便您能够看到发生了什么?

android gradle android-espresso gradle-managed-device

4
推荐指数
1
解决办法
553
查看次数

浓咖啡 - 获取元素的文本

如果我有一个"AppCompatTextView"元素,我可以访问:

onView(withId(R.id.allergies_text))
Run Code Online (Sandbox Code Playgroud)

从布局检查器:

在此输入图像描述

有没有办法可以访问Android Studio中的元素文本?(访问那里的任何文本......不检查元素中是否存在某些文本)

我试着这样做:

val tv = onView(withId(R.id.medical_summary_text_view)) as TextView
val text = text.text.toString()
print(text)
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

android.support.test.espresso.ViewInteraction无法强制转换为android.widget.TextView

android android-espresso android-espresso-recorder

3
推荐指数
2
解决办法
5496
查看次数

XCUITest 获取 URL 值

我正在使用 XCUITest 和 XCode 版本 8.3.3。该应用程序有一个登录按钮,可启动浏览器窗口。想知道是否有人可以告诉我如何访问打开的 URL 的值。我想验证我们在选择“登录”按钮时启动了正确的 URL。

let app = XCUIApplication()
let loginButton = app.buttons["Login"]
loginButton.tap()
Run Code Online (Sandbox Code Playgroud)

此时浏览器窗口打开:在此输入图像描述

如何获取 xyz.com 的价值?

使用辅助功能检查器,我可以看到: 在此输入图像描述

ios ios-ui-automation xctest xcode-ui-testing xcode8

1
推荐指数
1
解决办法
4266
查看次数

如何运行一次 swift XCTest 拆解

我正在使用 xcode 8.3.3,swift,并且我试图让tearDown 方法仅运行一次。

我使用此处提供的解决方案启动 应用程序一次:XCTestCase not launch application in setUp class method

在tearDown 方法中,我想注销应用程序。我只想做一次。

XCTest文档有一个类tearDown()方法,但是当我尝试使用它时 - 它不再能够访问应用程序?:https: //developer.apple.com/documentation/xctest/xctestcase/understand_setup_and_teardown_for_test_methods

这就是我在tearDown方法中得到的所有内容,因此它无法再访问应用程序上的任何元素:

在此输入图像描述

如何在所有测试结束时仅运行一次tearDown 中的代码?

ios-ui-automation xctest swift xcode-ui-testing xctestcase

1
推荐指数
1
解决办法
2265
查看次数

Swift XCUI字符串断言失败

我正在使用xcode 8.3.3并编写XCUI测试.

我有以下内容: let address = XCUIApplication().buttons["URL"].value as! String

查看调试器,我可以看到值是:

在此输入图像描述

如果我设置 expectedURL = "\u{e2}auth.int....net"然后它返回:在此输入图像描述

如果我设置 expectedURL = "auth.int....net"然后它返回:在此输入图像描述

如何使测试断言找到两个相等的字符串?

试过以下内容,但它不会取代"\ u {e2}":

let address = value.components(separatedBy: ",").first!.replacingOccurrences(of: "\u{e2}", with: "")
Run Code Online (Sandbox Code Playgroud)

而且(但它不会取代"\ u {e2}"):

let range = Range<String.Index>(uncheckedBounds: (lower: address.startIndex, upper: address.endIndex))

let strippedAddress = address.replacingOccurrences(of:"\\u{e2}", with: "", options: .literal, range: range)
Run Code Online (Sandbox Code Playgroud)

对于断言,我正在使用 XCTAssertEqual(address, expectedURL)

xcode ios ios-ui-automation swift xcode-ui-testing

0
推荐指数
1
解决办法
341
查看次数