Skip to content

Use patrol_challenge as example app #3450

Use patrol_challenge as example app

Use patrol_challenge as example app #3450

GitHub Actions / Patrol tests on iPhone 14 failed Nov 24, 2023 in 0s

Xcode test results

Test Runner

Summary

TotalSuccess PassedFailure FailedSkipped SkippedExpected Failure Expected Failure⏱️ Time
3210041.69s

Test Summary

RunnerUITests

  • Device: iPhone 14, 16.2 (20C52)
  • SDK: Simulator - iOS 16.2, 16.2
TestTotalSuccessFailureSkippedExpected Failure
test-class RunnerUITests32100

Failure Failures

RunnerUITests/RunnerUITests/webviewHackernewsTest___interactsWithTheOrangeWebsiteInAWebview

File/Users/runner/work/patrol/patrol/dev/e2e_app/ios/RunnerUITests/RunnerUITests.m:5
Issue TypeAssertion Failure
Message((response.passed) is true) failed - ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════ The following PatrolActionException was thrown running a test: Patrol action failed: NativeAutomatorClientException: tap() failed with Invalid response: 400 The operation couldnâ��t be completed. (patrol.PatrolError error 0.)

When the exception was thrown, this was the stack:
#0 NativeAutomator._wrapRequest (package:patrol/src/native/native_automator.dart:225:7)

#1 NativeAutomator.tap (package:patrol/src/native/native_automator.dart:494:5)

#2 main. (file:///Users/runner/work/patrol/patrol/dev/e2e_app/integration_test/webview_hackernews_test.dart:9:5)

#3 patrolTest. (package:patrol/src/common.dart:110:7)

#4 testWidgets.. (package:flutter_test/src/widget_tester.dart:168:15)

#5 TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1013:5)

#6 TestWidgetsFlutterBinding._createTestCompletionHandler. (package:flutter_test/src/binding.dart:804:12)

The test description was:
interacts with the orange website in a webview
═════════════════════════════════════════════════════════════════

Details

Test Details

RunnerUITestsback

RunnerUITests back

SuccessFailureSkippedExpected Failure⏱️
2 (67%)1 (33%)0 (0%)0 (0%)41.69s
Failuretest-method webviewHackernewsTest___interactsWithTheOrangeWebsiteInAWebviewback

Activities:
  • Start Test at 2023-11-24 13:47:36.663

    attachment
  • Set Up

  • Open pl.leancode.patrol.Example

    attachment
    • Launch pl.leancode.patrol.Example
      • Terminate pl.leancode.patrol.Example:8367

        attachment
      • Setting up automation session

      • Wait for pl.leancode.patrol.Example to idle

        attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Get all elements bound by index for: Elements matching predicate 'label == "login" OR title == "login" OR identifier == "login"'

    attachment
  • Tear Down

Successtest-method webviewLeancodeTest___interactsWithTheLeanCodeWebsiteInAWebview

Activities:
  • Start Test at 2023-11-24 13:48:13.920
  • Some screenshots were deleted because testing is configured to remove automatic screenshots on success.
  • Set Up
  • Open pl.leancode.patrol.Example
    • Launch pl.leancode.patrol.Example
      • Terminate pl.leancode.patrol.Example:8472
      • Setting up automation session
      • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept cookies" OR title == "Accept cookies" OR identifier == "Accept cookies"'
  • Checking existence of Any
  • Find the Any
  • Tap "Accept cookies" Button
    • Wait for pl.leancode.patrol.Example to idle
    • Find the "Accept cookies" Button
    • Check for interrupting elements affecting "Accept cookies" Button
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'elementType == 49 OR elementType == 50'
  • Checking existence of Any
  • Find the Any
  • Tap "Type your email" TextField
    • Wait for pl.leancode.patrol.Example to idle
    • Find the "Type your email" TextField
    • Check for interrupting elements affecting "Type your email" TextField
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Type '[email protected]
    ' into "Type your email" TextField
    • Wait for pl.leancode.patrol.Example to idle
    • Find the "Type your email" TextField
    • Check for interrupting elements affecting "Type your email" TextField
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'label == "Subscribe" OR title == "Subscribe" OR identifier == "Subscribe"'
  • Checking existence of Any
  • Find the Any
  • Tap "Subscribe" Button
    • Wait for pl.leancode.patrol.Example to idle
    • Find the "Subscribe" Button
    • Check for interrupting elements affecting "Subscribe" Button
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Tear Down
Successtest-method webviewStackoverflowTest___interactsWithTheStackOverflowWebsiteInAWebview

Activities:
  • Start Test at 2023-11-24 13:49:26.116
  • Some screenshots were deleted because testing is configured to remove automatic screenshots on success.
  • Set Up
  • Open pl.leancode.patrol.Example
    • Launch pl.leancode.patrol.Example
      • Terminate pl.leancode.patrol.Example:8595
      • Setting up automation session
      • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept all cookies" OR title == "Accept all cookies" OR identifier == "Accept all cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept all cookies" OR title == "Accept all cookies" OR identifier == "Accept all cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept all cookies" OR title == "Accept all cookies" OR identifier == "Accept all cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept all cookies" OR title == "Accept all cookies" OR identifier == "Accept all cookies"'
  • Get all elements bound by index for: Elements matching predicate 'label == "Accept all cookies" OR title == "Accept all cookies" OR identifier == "Accept all cookies"'
  • Checking existence of Any
  • Find the Any
  • Tap "Accept all cookies" Button
    • Wait for pl.leancode.patrol.Example to idle
    • Find the "Accept all cookies" Button
    • Check for interrupting elements affecting "Accept all cookies" Button
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'label == "Log in" OR title == "Log in" OR identifier == "Log in"'
  • Checking existence of Any
  • Find the Any
  • Tap "Log in" MenuItem
    • Wait for pl.leancode.patrol.Example to idle
    • Find the "Log in" MenuItem
    • Check for interrupting elements affecting "Log in" MenuItem
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'elementType == 49 OR elementType == 50'
  • Checking existence of Any
  • Find the Any
  • Tap TextField at {{85.0, 466.0}, {220.0, 35.0}}
    • Wait for pl.leancode.patrol.Example to idle
    • Find the TextField at {{85.0, 466.0}, {220.0, 35.0}}
    • Check for interrupting elements affecting TextField
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Type '[email protected]
    ' into TextField at {{85.0, 466.0}, {220.0, 35.0}}
    • Wait for pl.leancode.patrol.Example to idle
    • Find the TextField at {{85.0, 466.0}, {220.0, 35.0}}
    • Check for interrupting elements affecting TextField
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'elementType == 49 OR elementType == 50'
  • Checking existence of Any
  • Find the Any
  • Tap SecureTextField at {{85.0, 347.0}, {220.0, 36.0}}
    • Wait for pl.leancode.patrol.Example to idle
    • Find the SecureTextField at {{85.0, 347.0}, {220.0, 36.0}}
    • Check for interrupting elements affecting SecureTextField
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Type 'ny4ncat
    ' into SecureTextField at {{85.0, 347.0}, {220.0, 36.0}}
    • Wait for pl.leancode.patrol.Example to idle
    • Find the SecureTextField at {{85.0, 347.0}, {220.0, 36.0}}
    • Check for interrupting elements affecting SecureTextField
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Get all elements bound by index for: Elements matching predicate 'label == "Log in" OR title == "Log in" OR identifier == "Log in"'
  • Checking existence of Any
  • Find the Any
  • Tap "Log in" Button
    • Wait for pl.leancode.patrol.Example to idle
    • Find the "Log in" Button
    • Check for interrupting elements affecting "Log in" Button
    • Synthesize event
    • Wait for pl.leancode.patrol.Example to idle
  • Tear Down

Annotations

Check failure on line 5 in /Users/runner/work/patrol/patrol/dev/e2e_app/ios/RunnerUITests/RunnerUITests.m

See this annotation in the file changed.

@github-actions github-actions / Patrol tests on iPhone 14

Assertion Failure

((response.passed) is true) failed - ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════
The following PatrolActionException was thrown running a test:
Patrol action failed: NativeAutomatorClientException: tap()
failed with Invalid response: 400 The operation couldn’t be
completed. (patrol.PatrolError error 0.)

When the exception was thrown, this was the stack:
#0      NativeAutomator._wrapRequest (package:patrol/src/native/native_automator.dart:225:7)
<asynchronous suspension>
#1      NativeAutomator.tap (package:patrol/src/native/native_automator.dart:494:5)
<asynchronous suspension>
#2      main.<anonymous closure> (file:///Users/runner/work/patrol/patrol/dev/e2e_app/integration_test/webview_hackernews_test.dart:9:5)
<asynchronous suspension>
#3      patrolTest.<anonymous closure> (package:patrol/src/common.dart:110:7)
<asynchronous suspension>
#4      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:168:15)
<asynchronous suspension>
#5      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1013:5)
<asynchronous suspension>
#6      TestWidgetsFlutterBinding._createTestCompletionHandler.<anonymous closure> (package:flutter_test/src/binding.dart:804:12)
<asynchronous suspension>

The test description was:
  interacts with the orange website in a webview
═════════════════════════════════════════════════════════════════