使用espresso,我们点击一个登录按钮,启动外部网站(Chrome自定义标签),您可以登录,然后重定向回我们的Android应用程序.
Espresso有没有办法:
1)验证正在启动的URL
2)访问网站上的元素,以便我可以输入登录信息并继续登录
当我尝试在咖啡启动导航查看它,什么也不显示的页面,如果我尝试记录,它不会对我拿起进入页面上的任何内容.
它启动我的应用程序,选择登录按钮,打开网站,但它无法访问元素.
我也尝试过:
更新:这是使用Chrome自定义标签(不是网络视图),因此Espresso Web无法使用.
android android-espresso android-uiautomator chrome-custom-tabs android-espresso-recorder
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
这是代码的存根。
单击上的数据项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() 或类似)?
我正在使用 Espresso/Kotlin 为我们的 Android 应用程序运行测试,我想为给定测试类中的所有测试运行一次设置。
我创建了一个伴随对象来启动应用程序一次(它确实启动了),但是它会在每次测试运行时关闭并且不会保持打开状态。
如何让它启动应用程序,运行测试类中的所有测试,然后关闭应用程序?
我正在考虑为 VueJS 应用程序创建自动化测试用例,该应用程序将在多个不同的桌面浏览器和移动(iOS 和 Android)浏览器中得到支持。我遇到了几个选项,包括 Protractor、Test Cafe、Nightwatch 和 Cypress。Cypress 仅受 Chrome 浏览器支持,因此我无法使用它,而 Protractor 似乎更适合测试 Angular 应用程序。所以我正在寻找使用过 Test Cafe 或 Nightwatch 的人的反馈。
问题:
我们正在运行 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 特有的。
使用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) 通过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)
是否可以在运行测试时显示模拟器,以便您能够看到发生了什么?
如果我有一个"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
我正在使用 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 的价值?
我正在使用 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 中的代码?
我正在使用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)