Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scroll, scrollUntilVisible do not work with Expo BlurView and Xcode 16+ #2251

Open
1 task done
tb-nishant opened this issue Jan 16, 2025 · 1 comment
Open
1 task done

Comments

@tb-nishant
Copy link

Is there an existing issue for this?

  • I have searched the existing issues and didn't find mine.

Steps to reproduce

  1. Clone https://github.com/tb-nishant/maestro-scroll-issue.git

  2. Install dependencies

    npm install
    
  3. Start the app

    npx expo start
    

    Open the app in a iOS simulator

  4. Run maestro test

    maestro test .maestro/scroll-test.yaml
    

    You can see that the flow gets stuck on scrollUntilVisible step & fails with error.

  5. Swap BlurView with react-native View

  6. Run maestro test again & the flow passes.

Actual results

Maestro flow gets stuck on scrollUntilVisible step. It scrolls once after waiting a long time then fails with an error com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input.

Expected results

scrollUntilVisible should work fine with expo-blur component and Xcode 16+

About app

Expo app (reproduced on both v51 & v52), on iOS platform. It only occurs on Xcode 16+, using Xcode 15 it works fine.

About environment

OS Name: Mac OS X
OS Version: 14.7.2
Architecture: aarch64
Java Version: 17
Xcode Version: 16.2

Logs

Logs
16:50:55.975 [ INFO] MAESTRO.logSystemInfo: ---- System Info ----
16:50:55.976 [ INFO] MAESTRO.logSystemInfo: Maestro Version: 1.39.7
16:50:55.977 [ INFO] MAESTRO.logSystemInfo: CI: Undefined
16:50:55.977 [ INFO] MAESTRO.logSystemInfo: OS Name: Mac OS X
16:50:55.977 [ INFO] MAESTRO.logSystemInfo: OS Version: 14.7.2
16:50:55.977 [ INFO] MAESTRO.logSystemInfo: Architecture: aarch64
16:50:55.977 [ INFO] MAESTRO.logSystemInfo: Java Version: 17
16:50:56.115 [ INFO] MAESTRO.logSystemInfo: Xcode Version: 16.2
16:50:56.118 [ INFO] MAESTRO.logSystemInfo: Flutter Version: Undefined
16:50:56.120 [ INFO] MAESTRO.logSystemInfo: Flutter Channel: Undefined
16:50:56.120 [ INFO] MAESTRO.logSystemInfo: ---------------------
16:50:56.401 [DEBUG] io.micrometer.common.util.internal.logging.InternalLoggerFactory.newDefaultFactory: Using SLF4J as the default logging framework
16:50:56.746 [ INFO] maestro.cli.command.TestCommand.runShardSuite: [shard 1] Selected device 34FBDB55-933B-45E9-BCBE-053E567AB081 using port 7001
16:50:56.928 [TRACE] ios.xctest.XCTestIOSDevice.open: Opening a connection
16:50:56.928 [TRACE] xcuitest.XCTestDriverClient.restartXCTestRunner: Restarting XCTest Runner (uninstalling, installing and starting)
16:50:56.929 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:56.931 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:50:56.931 [TRACE] xcuitest.XCTestDriverClient.restartXCTestRunner: XCTest Runner uninstalled, will install and start it
16:50:56.931 [ INFO] xcuitest.installer.LocalXCTestInstaller.invoke: start()
16:50:56.931 [ INFO] xcuitest.installer.LocalXCTestInstaller.invoke: [Start] Install XCUITest runner on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:56.931 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:56.932 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:50:56.932 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Start] Writing xctest run file
16:50:56.932 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Done] Writing xctest run file
16:50:56.933 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Start] Writing maestro-driver-iosUITests-Runner app
16:50:57.305 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Done] Writing maestro-driver-iosUITests-Runner app
16:50:57.305 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Start] Writing maestro-driver-ios app
16:50:57.317 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Done] Writing maestro-driver-ios app
16:50:57.317 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Start] Running XcUITest with `xcodebuild test-without-building`
16:50:57.320 [ INFO] util.CommandLineUtils.runCommand: Running command line operation: [xcodebuild, test-without-building, -xctestrun, /var/folders/1s/yf2gnyds3gs2yr3s0vh723_h0000gn/T/34FBDB55-933B-45E9-BCBE-053E567AB081/maestro-driver-ios-config.xctestrun, -destination, id=34FBDB55-933B-45E9-BCBE-053E567AB081, -derivedDataPath, /var/folders/1s/yf2gnyds3gs2yr3s0vh723_h0000gn/T/maestro_xctestrunner_xcodebuild_output10468570678614307128]
16:50:57.324 [ INFO] xcuitest.installer.LocalXCTestInstaller.startXCTestRunner: [Done] Running XcUITest with `xcodebuild test-without-building`
16:50:57.324 [ INFO] xcuitest.installer.LocalXCTestInstaller.invoke: [Done] Install XCUITest runner on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:57.324 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:57.325 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:50:57.831 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:57.831 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:50:58.337 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:58.337 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:50:58.843 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:58.843 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:50:59.348 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:59.348 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:50:59.850 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:50:59.851 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:51:00.356 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:51:00.358 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081, exception: java.net.ConnectException: Failed to connect to /[0:0:0:0:0:0:0:1]:7001
16:51:00.859 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:51:00.925 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Done] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:51:00.956 [ INFO] maestro.Maestro.invoke: Getting device info
16:51:01.065 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:01.066 [ INFO] maestro.Maestro.invoke: Got device info: DeviceInfo(platform=IOS, widthPixels=1206, heightPixels=2622, widthGrid=402, heightGrid=874)
16:51:01.067 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Define variables RUNNING
16:51:01.069 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Define variables metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(defineVariablesCommand=DefineVariablesCommand(env={MAESTRO_AUTO_USER_PASSWORD=zbfuMEvcqT4CCVPNIihc0w!, MAESTRO_FILENAME=scroll-test}, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:01.070 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Define variables COMPLETED
16:51:01.071 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Apply configuration RUNNING
16:51:01.072 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Apply configuration metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(applyConfigurationCommand=ApplyConfigurationCommand(config=MaestroConfig(appId=host.exp.Exponent, name=null, tags=[], ext={jsEngine=graaljs}, onFlowStart=null, onFlowComplete=null), label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:01.073 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Apply configuration COMPLETED
16:51:01.073 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Launch app "host.exp.Exponent" RUNNING
16:51:01.074 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Launch app "host.exp.Exponent" metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(launchAppCommand=LaunchAppCommand(appId=host.exp.Exponent, clearState=null, clearKeychain=null, stopApp=null, permissions=null, launchArguments=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:01.076 [ INFO] util.CommandLineUtils.runCommand: Running command line operation: [/Users/me/.maestro/deps/applesimutils, --byId, 34FBDB55-933B-45E9-BCBE-053E567AB081, --bundle, host.exp.Exponent, --setPermissions, calendar=YES,camera=YES,contacts=YES,faceid=YES,homekit=YES,medialibrary=YES,microphone=YES,motion=YES,photos=YES,reminders=YES,siri=YES,speech=YES,userTracking=YES]
16:51:01.354 [ INFO] util.CommandLineUtils.runCommand: Running command line operation: [xcrun, simctl, privacy, 34FBDB55-933B-45E9-BCBE-053E567AB081, grant, location-always, host.exp.Exponent]
16:51:01.548 [ INFO] maestro.Maestro.launchApp: Launching app host.exp.Exponent
16:51:01.711 [ INFO] util.CommandLineUtils.runCommand: Running command line operation: [xcrun, simctl, spawn, 34FBDB55-933B-45E9-BCBE-053E567AB081, launchctl, setenv, MAESTRO_SESSION_ID, f6644486-ed6d-4a3c-9df3-6ba4ada5108a]
16:51:02.032 [ INFO] util.CommandLineUtils.runCommand: Running command line operation: [xcrun, simctl, launch, 34FBDB55-933B-45E9-BCBE-053E567AB081, host.exp.Exponent]
16:51:02.271 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Launch app "host.exp.Exponent" COMPLETED
16:51:02.272 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "MaestroScrollIssue" is visible RUNNING
16:51:02.274 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "MaestroScrollIssue" is visible metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(assertConditionCommand=AssertConditionCommand(condition=Condition(platform=null, visible=ElementSelector(textRegex=MaestroScrollIssue, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), notVisible=null, scriptCondition=null, label=null), timeout=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:02.403 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:02.404 [ INFO] ios.IOSDevice.viewHierarchy: Requesting view hierarchy of the screen
16:51:05.419 [TRACE] ios.xctest.XCTestIOSDevice.invoke: Depth received: 46
16:51:05.420 [ INFO] ios.IOSDevice.viewHierarchy: Depth of the screen is 46
16:51:05.420 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "MaestroScrollIssue" is visible metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(assertConditionCommand=AssertConditionCommand(condition=Condition(platform=null, visible=ElementSelector(textRegex=MaestroScrollIssue, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), notVisible=null, scriptCondition=null, label=null), timeout=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:05.424 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "MaestroScrollIssue" is visible COMPLETED
16:51:05.425 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Tap on "MaestroScrollIssue" RUNNING
16:51:05.425 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Tap on "MaestroScrollIssue" metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(tapOnElementCommand=TapOnElementCommand(selector=ElementSelector(textRegex=MaestroScrollIssue, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), retryIfNoChange=true, waitUntilVisible=false, longPress=false, repeat=null, waitToSettleTimeoutMs=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:05.498 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:05.498 [ INFO] ios.IOSDevice.viewHierarchy: Requesting view hierarchy of the screen
16:51:06.365 [TRACE] ios.xctest.XCTestIOSDevice.invoke: Depth received: 46
16:51:06.365 [ INFO] ios.IOSDevice.viewHierarchy: Depth of the screen is 46
16:51:06.365 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Tap on "MaestroScrollIssue" metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(tapOnElementCommand=TapOnElementCommand(selector=ElementSelector(textRegex=MaestroScrollIssue, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), retryIfNoChange=true, waitUntilVisible=false, longPress=false, repeat=null, waitToSettleTimeoutMs=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:06.369 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Tap on "MaestroScrollIssue" metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(tapOnElementCommand=TapOnElementCommand(selector=ElementSelector(textRegex=MaestroScrollIssue, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), retryIfNoChange=true, waitUntilVisible=false, longPress=false, repeat=null, waitToSettleTimeoutMs=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=TapPoint(point=Point(x=201, y=435)))
16:51:06.369 [ INFO] maestro.Maestro.tap-BUbHBYE: Tapping on element:  UiElement(treeNode=TreeNode(attributes={accessibilityText=MaestroScrollIssue, title=, value=, text=, hintText=, resource-id=, bounds=[17,399][385,471], enabled=true, focused=false, selected=false, checked=false}, children=[TreeNode(attributes={accessibilityText=, title=, value=, text=, hintText=, resource-id=, bounds=[17,399][385,471], enabled=true, focused=false, selected=false, checked=false}, children=[TreeNode(attributes={accessibilityText=MaestroScrollIssue, title=, value=, text=, hintText=, resource-id=, bounds=[17,399][385,471], enabled=true, focused=false, selected=false, checked=false}, children=[], clickable=null, enabled=true, focused=false, checked=false, selected=false)], clickable=null, enabled=true, focused=false, checked=false, selected=false)], clickable=null, enabled=true, focused=false, checked=false, selected=false), bounds=Bounds(x=17, y=399, width=368, height=72))
16:51:06.370 [ INFO] ios.IOSDevice.invoke-F9mIFpk: Waiting for animation to end with timeout 3000
16:51:06.555 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Screen diff request finished with isScreenStatic = true
16:51:06.555 [ INFO] ios.IOSDevice.invoke: screen static = true
16:51:06.557 [ INFO] maestro.Maestro.screenshotBasedTap-hbl3e4M: Tapping at (201, 435) using screenshot based logic for wait
16:51:06.991 [ INFO] ios.IOSDevice.invoke-F9mIFpk: Waiting for animation to end with timeout 3000
16:51:07.181 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Screen diff request finished with isScreenStatic = false
16:51:07.181 [ INFO] ios.IOSDevice.invoke: screen static = false
16:51:07.386 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Screen diff request finished with isScreenStatic = true
16:51:07.387 [ INFO] ios.IOSDevice.invoke: screen static = true
16:51:07.387 [ INFO] maestro.Maestro.screenshotBasedTap-hbl3e4M: Something has changed in the UI judging by view hierarchy. Proceed.
16:51:07.387 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Tap on "MaestroScrollIssue" COMPLETED
16:51:07.388 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "index" is visible RUNNING
16:51:07.389 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "index" is visible metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(assertConditionCommand=AssertConditionCommand(condition=Condition(platform=null, visible=ElementSelector(textRegex=index, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), notVisible=null, scriptCondition=null, label=null), timeout=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:07.497 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:07.497 [ INFO] ios.IOSDevice.viewHierarchy: Requesting view hierarchy of the screen
16:51:08.322 [TRACE] ios.xctest.XCTestIOSDevice.invoke: Depth received: 24
16:51:08.322 [ INFO] ios.IOSDevice.viewHierarchy: Depth of the screen is 24
16:51:08.322 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "index" is visible metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(assertConditionCommand=AssertConditionCommand(condition=Condition(platform=null, visible=ElementSelector(textRegex=index, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), notVisible=null, scriptCondition=null, label=null), timeout=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:08.434 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:08.435 [ INFO] ios.IOSDevice.viewHierarchy: Requesting view hierarchy of the screen
16:51:09.264 [TRACE] ios.xctest.XCTestIOSDevice.invoke: Depth received: 24
16:51:09.264 [ INFO] ios.IOSDevice.viewHierarchy: Depth of the screen is 24
16:51:09.264 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "index" is visible metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(assertConditionCommand=AssertConditionCommand(condition=Condition(platform=null, visible=ElementSelector(textRegex=index, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), notVisible=null, scriptCondition=null, label=null), timeout=null, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:09.267 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Assert that "index" is visible COMPLETED
16:51:09.268 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Scrolling DOWN until "Item - 30" is visible. RUNNING
16:51:09.269 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Scrolling DOWN until "Item - 30" is visible. metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(scrollUntilVisibleCommand=ScrollUntilVisibleCommand(selector=ElementSelector(textRegex=Item - 30, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), direction=DOWN, scrollDuration=601, visibilityPercentage=100, timeout=20000, waitToSettleTimeoutMs=null, centerElement=true, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:09.371 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:09.479 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:09.479 [ INFO] ios.IOSDevice.viewHierarchy: Requesting view hierarchy of the screen
16:51:10.290 [TRACE] ios.xctest.XCTestIOSDevice.invoke: Depth received: 24
16:51:10.291 [ INFO] ios.IOSDevice.viewHierarchy: Depth of the screen is 24
16:51:10.291 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Scrolling DOWN until "Item - 30" is visible. metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(scrollUntilVisibleCommand=ScrollUntilVisibleCommand(selector=ElementSelector(textRegex=Item - 30, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), direction=DOWN, scrollDuration=601, visibilityPercentage=100, timeout=20000, waitToSettleTimeoutMs=null, centerElement=true, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:10.415 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:10.415 [ INFO] ios.IOSDevice.viewHierarchy: Requesting view hierarchy of the screen
16:51:11.325 [TRACE] ios.xctest.XCTestIOSDevice.invoke: Depth received: 24
16:51:11.325 [ INFO] ios.IOSDevice.viewHierarchy: Depth of the screen is 24
16:51:11.325 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Scrolling DOWN until "Item - 30" is visible. metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(scrollUntilVisibleCommand=ScrollUntilVisibleCommand(selector=ElementSelector(textRegex=Item - 30, idRegex=null, size=null, below=null, above=null, leftOf=null, rightOf=null, containsChild=null, containsDescendants=null, traits=null, index=null, enabled=null, optional=false, selected=null, checked=null, focused=null, childOf=null), direction=DOWN, scrollDuration=601, visibilityPercentage=100, timeout=20000, waitToSettleTimeoutMs=null, centerElement=true, label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), action=null)
16:51:11.328 [ INFO] maestro.cli.runner.MaestroCommandRunner.invoke: Scrolling DOWN until "Item - 30" is visible. metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=null, logMessages=[], insight=Insight(message=, level=NONE), action=MultipleSwipePoint(direction=UP, points=[Point(x=201, y=437)]))
16:51:11.463 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:11.463 [ INFO] maestro.Maestro.swipeFromCenter: Swiping UP from center
16:51:11.568 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:11.673 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Device info DeviceInfo(widthPixels=1206, heightPixels=2622, widthPoints=402, heightPoints=874)
16:51:11.675 [ INFO] ios.IOSDevice.invoke-F9mIFpk: Waiting for animation to end with timeout 3000
16:51:11.887 [ INFO] ios.xctest.XCTestIOSDevice.invoke: Screen diff request finished with isScreenStatic = true
16:51:11.888 [ INFO] ios.IOSDevice.invoke: screen static = true
16:53:13.658 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot
16:53:13.659 [TRACE] maestro.utils.ScreenshotUtils.takeScreenshot: Taking screenshot to output sink
16:53:13.859 [ERROR] maestro.cli.runner.TestRunner.runCatching: Failed to run flow
com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
 at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1]
	at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
	at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4996)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4898)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3816)
	at xcuitest.XCTestDriverClient.handleExceptions(XCTestDriverClient.kt:251)
	at xcuitest.XCTestDriverClient.processResponse(XCTestDriverClient.kt:240)
	at xcuitest.XCTestDriverClient.executeJsonRequest(XCTestDriverClient.kt:222)
	at xcuitest.XCTestDriverClient.swipeV2(XCTestDriverClient.kt:118)
	at ios.xctest.XCTestIOSDevice$scrollV2$1.invoke(XCTestIOSDevice.kt:107)
	at ios.xctest.XCTestIOSDevice$scrollV2$1.invoke(XCTestIOSDevice.kt:106)
	at ios.xctest.XCTestIOSDevice.execute(XCTestIOSDevice.kt:229)
	at ios.xctest.XCTestIOSDevice.scrollV2(XCTestIOSDevice.kt:106)
	at ios.LocalIOSDevice.scroll(LocalIOSDevice.kt:80)
	at maestro.drivers.IOSDriver$swipe$1$1.invoke(IOSDriver.kt:245)
	at maestro.drivers.IOSDriver$swipe$1$1.invoke(IOSDriver.kt:243)
	at maestro.drivers.IOSDriver.runDeviceCall(IOSDriver.kt:530)
	at maestro.drivers.IOSDriver.access$runDeviceCall(IOSDriver.kt:43)
	at maestro.drivers.IOSDriver$swipe$1.invoke(IOSDriver.kt:243)
	at maestro.drivers.IOSDriver$swipe$1.invoke(IOSDriver.kt:238)
	at maestro.utils.Metrics.measured(Metrics.kt:48)
	at maestro.drivers.IOSDriver.swipe(IOSDriver.kt:238)
	at maestro.drivers.IOSDriver$swipe$3.invoke(IOSDriver.kt:323)
	at maestro.drivers.IOSDriver$swipe$3.invoke(IOSDriver.kt:315)
	at maestro.utils.Metrics.measured(Metrics.kt:48)
	at maestro.drivers.IOSDriver.swipe(IOSDriver.kt:315)
	at maestro.Maestro.swipeFromCenter(Maestro.kt:165)
	at maestro.orchestra.Orchestra.scrollUntilVisible(Orchestra.kt:541)
	at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:273)
	at maestro.orchestra.Orchestra.executeCommands(Orchestra.kt:197)
	at maestro.orchestra.Orchestra.runFlow(Orchestra.kt:131)
	at maestro.cli.runner.MaestroCommandRunner.runCommands(MaestroCommandRunner.kt:179)
	at maestro.cli.runner.TestRunner$runSingle$result$1.invoke(TestRunner.kt:62)
	at maestro.cli.runner.TestRunner$runSingle$result$1.invoke(TestRunner.kt:53)
	at maestro.cli.runner.TestRunner.runCatching(TestRunner.kt:160)
	at maestro.cli.runner.TestRunner.runSingle(TestRunner.kt:53)
	at maestro.cli.command.TestCommand.runSingleFlow(TestCommand.kt:352)
	at maestro.cli.command.TestCommand.access$runSingleFlow(TestCommand.kt:63)
	at maestro.cli.command.TestCommand$runShardSuite$2.invoke(TestCommand.kt:326)
	at maestro.cli.command.TestCommand$runShardSuite$2.invoke(TestCommand.kt:297)
	at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:103)
	at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:53)
	at maestro.cli.command.TestCommand.runShardSuite(TestCommand.kt:297)
	at maestro.cli.command.TestCommand.access$runShardSuite(TestCommand.kt:63)
	at maestro.cli.command.TestCommand$handleSessions$1$results$1$1.invokeSuspend(TestCommand.kt:265)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
16:53:13.862 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:53:13.957 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Done] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:53:14.626 [ INFO] xcuitest.installer.LocalXCTestInstaller.close: [Start] Cleaning up the ui test runner files
16:53:14.679 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:53:14.784 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Done] Perform XCUITest driver status check on 34FBDB55-933B-45E9-BCBE-053E567AB081
16:53:14.785 [TRACE] xcuitest.installer.LocalXCTestInstaller.invoke$killXCTestRunnerProcess: Will attempt to stop all alive XCTest Runner processes before uninstalling
16:53:14.785 [TRACE] xcuitest.installer.LocalXCTestInstaller.invoke$killXCTestRunnerProcess: XCTest Runner process started by us is alive, killing it
16:53:15.243 [TRACE] xcuitest.installer.LocalXCTestInstaller.invoke$killXCTestRunnerProcess: All XCTest Runner processes were stopped
16:53:15.243 [TRACE] xcuitest.installer.LocalXCTestInstaller.invoke: Uninstalling XCTest Runner from device 34FBDB55-933B-45E9-BCBE-053E567AB081
16:53:15.243 [ INFO] util.CommandLineUtils.runCommand: Running command line operation: [xcrun, simctl, uninstall, 34FBDB55-933B-45E9-BCBE-053E567AB081, dev.mobile.maestro-driver-iosUITests.xctrunner]
16:53:15.446 [ INFO] xcuitest.installer.LocalXCTestInstaller.close: [Done] Cleaning up the ui test runner files

Maestro version

1.39.7

How did you install Maestro?

install script (https://get.maestro.mobile.dev)

Anything else?

I started seeing this issue only after I installed Xcode 16, previous versions of Xcode work fine. Can reproduce this issue on both Expo SDK 51 & 52, on different iOS simulators (17, 18, 18.2).
If I swap BlurView with a react-native View, the flow passes.

One of my coworkers posted this issue in maestro slack channel some time back, also saw one other report about this.

There is also this weird issue with Detox & expo-blur, something I found similar.

Copy link

linear bot commented Jan 16, 2025

@tb-nishant tb-nishant changed the title scroll does not work with Expo BlurViewand Xcode 16+ scroll, scrollUntilVisible do not work with Expo BlurView and Xcode 16+ Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant