Skip to content
New issue

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

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

Already on GitHub? # to your account

typeText is unable to type numbers #902

Closed
DanielMSchmidt opened this issue Aug 28, 2018 · 5 comments
Closed

typeText is unable to type numbers #902

DanielMSchmidt opened this issue Aug 28, 2018 · 5 comments

Comments

@DanielMSchmidt
Copy link
Contributor

Description

When I use typeText on a text input field and I have a number being typed I get an error. As far as I understand it indicates that the "1" can not be found on the keyboard.

 Error: Error: Cannot find UI Element.
Exception with Assertion: {
  "Assertion Criteria":  "assertWithMatcher:matcherForSufficientlyVisible(>=0.750000)",
  "Element Matcher":  "((!(kindOfClass('RCTScrollView')) && (respondsToSelector(accessibilityIdentifier) && accessibilityID('onboarding-landing'))) || (((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches(kindOfClass('RCTScrollView'))) && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches((respondsToSelector(accessibilityIdentifier) && accessibilityID('onboarding-landing'))))))",
  "Recovery Suggestion":  "Check if the element exists in the UI hierarchy printed below. If it exists, adjust the matcher so that it accurately matches element."
}


Error Trace: [
  {
    "Description":  "Interaction cannot continue because the desired element was not found.",
    "Error Domain":  "com.google.earlgrey.ElementInteractionErrorDomain",
    "Error Code":  "0",
    "File Name":  "GREYElementInteraction.m",
    "Function Name":  "-[GREYElementInteraction matchedElementsWithTimeout:error:]",
    "Line":  "124"
  }
]

Steps to Reproduce

I will try to do a small demo when I have more time, but it boils down to trying to type a text in an input field with text having numbers in it.

Detox, Node, Device, Xcode and macOS Versions

  • Detox: 8.2.3
  • React Native: 0.54.2
  • Node: 10.9.0
  • Device: Simulator (iPhone 7)
  • Xcode: 9.4.1
  • macOS: 10.13.6

Device and verbose Detox logs

detox test --loglevel verbose
node_modules/.bin/mocha e2e --opts e2e/mocha.opts --configuration ios.sim.debug --loglevel verbose     --grep :android: --invert     --artifacts-location "artifacts/ios.sim.debug.2018-08-28 06-55-55Z"


detox[9293] INFO:  [DetoxServer.js] server listening on localhost:51460...
detox[9293] DEBUG: [AsyncWebSocket.js/WEBSOCKET_OPEN] opened web socket to: ws://localhost:51460
detox[9293] DEBUG: [DetoxServer.js/#] role=tester, sessionId=f3d223bd-7306-2914-001b-b3c8e7449f72
detox[9293] DEBUG: [DetoxServer.js/#_SUCCESS] role=tester, sessionId=f3d223bd-7306-2914-001b-b3c8e7449f72
detox[9293] DEBUG: [exec.js/EXEC_CMD, #0] /usr/bin/xcrun simctl list -j
detox[9293] DEBUG: [exec.js/EXEC_CMD, #1] applesimutils --list --byType "iPhone 7" --byOS "11.4"
detox[9293] DEBUG: [exec.js/EXEC_TRY, #1] Searching for device matching iPhone 7...
detox[9293] DEBUG: [exec.js/EXEC_CMD, #2] applesimutils --list --byId "4E215D20-5FE6-470D-9DCE-F796EAD51F81"
edetox[9293] DEBUG: [exec.js/EXEC_CMD, #3] /usr/bin/xcrun simctl uninstall 4E215D20-5FE6-470D-9DCE-F796EAD51F81 de.lokalportal.app
detox[9293] DEBUG: [exec.js/EXEC_TRY, #3] Uninstalling de.lokalportal.app...
detox[9293] DEBUG: [exec.js/EXEC_SUCCESS, #3] de.lokalportal.app uninstalled
detox[9293] DEBUG: [exec.js/EXEC_CMD, #4] /usr/bin/xcrun simctl install 4E215D20-5FE6-470D-9DCE-F796EAD51F81 "/Users/danielschmidt/Projects/lokalportal/apps/app/ios/build/Build/Products/Debug-iphonesimulator/app.app"
detox[9293] DEBUG: [exec.js/EXEC_TRY, #4] Installing /Users/danielschmidt/Projects/lokalportal/apps/app/ios/build/Build/Products/Debug-iphonesimulator/app.app...
detox[9293] DEBUG: [exec.js/EXEC_SUCCESS, #4] /Users/danielschmidt/Projects/lokalportal/apps/app/ios/build/Build/Products/Debug-iphonesimulator/app.app installed
detox[9293] DEBUG: [exec.js/EXEC_CMD, #5] /usr/bin/xcrun simctl terminate 4E215D20-5FE6-470D-9DCE-F796EAD51F81 de.lokalportal.app
detox[9293] DEBUG: [exec.js/EXEC_TRY, #5] Terminating de.lokalportal.app...
detox[9293] DEBUG: [exec.js/EXEC_SUCCESS, #5] de.lokalportal.app terminated
detox[9293] DEBUG: [exec.js/EXEC_CMD, #6] /bin/cat /dev/null >/Users/danielschmidt/Library/Developer/CoreSimulator/Devices/4E215D20-5FE6-470D-9DCE-F796EAD51F81/data/tmp/detox.last_launch_app_log.out 2>/Users/danielschmidt/Library/Developer/CoreSimulator/Devices/4E215D20-5FE6-470D-9DCE-F796EAD51F81/data/tmp/detox.last_launch_app_log.err && SIMCTL_CHILD_DYLD_INSERT_LIBRARIES="/Users/danielschmidt/Library/Detox/ios/9b1cf119d6b7b0d2bb09a9e8c56ad526925d9c30/Detox.framework/Detox" /usr/bin/xcrun simctl launch --stdout=/tmp/detox.last_launch_app_log.out --stderr=/tmp/detox.last_launch_app_log.err 4E215D20-5FE6-470D-9DCE-F796EAD51F81 de.lokalportal.app --args -detoxServer ws://localhost:51460 -detoxSessionId f3d223bd-7306-2914-001b-b3c8e7449f72
detox[9293] DEBUG: [exec.js/EXEC_TRY, #6] Launching de.lokalportal.app...
detox[9293] DEBUG: [exec.js/EXEC_SUCCESS, #6] de.lokalportal.app launched. The stdout and stderr logs were recreated, you can watch them with:
        tail -F /Users/danielschmidt/Library/Developer/CoreSimulator/Devices/4E215D20-5FE6-470D-9DCE-F796EAD51F81/data/tmp/detox.last_launch_app_log.{out,err}
detox[9293] DEBUG: [DetoxServer.js/CANNOT_FORWARD] role=testee not connected, cannot fw action (sessionId=f3d223bd-7306-2914-001b-b3c8e7449f72)
detox[9293] DEBUG: [DetoxServer.js/#] role=testee, sessionId=f3d223bd-7306-2914-001b-b3c8e7449f72
detox[9293] DEBUG: [DetoxServer.js/#_SUCCESS] role=testee, sessionId=f3d223bd-7306-2914-001b-b3c8e7449f72
  Login
    ✓ shows a login form (1735ms)
    1) performs a login

  1 passing (17s)
  1 failing

  1) Login
       performs a login:
     Error: Error: Cannot find UI element.
Exception with Action: {
  "Action Name":  "Type 'kiel1@makiuu.de'",
  "Element Matcher":  "((!(kindOfClass('RCTScrollView')) && (respondsToSelector(accessibilityIdentifier) && accessibilityID('email'))) || (((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches(kindOfClass('RCTScrollView'))) && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches((respondsToSelector(accessibilityIdentifier) && accessibilityID('email'))))))",
  "Recovery Suggestion":  "Check if the element exists in the UI hierarchy printed below. If it exists, adjust the matcher so that it accurately matches element."
}


Error Trace: [
  {
    "Description":  "Failed to type string 'kiel1@makiuu.de', because key [K] could not be found on the keyboard.",
    "Description Glossary":    {
      "K":  "more, numbers"
    },
    "Error Domain":  "com.google.earlgrey.ElementInteractionErrorDomain",
    "Error Code":  "0",
    "File Name":  "GREYKeyboard.m",
    "Function Name":  "+[GREYKeyboard grey_setErrorForkeyNotFoundWithAccessibilityLabel:forTypingString:error:]",
    "Line":  "519"
  }
]

Hierarchy: <UIWindow:0x7ff138e14e20; AX=N; AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 667}}; opaque; alpha=1>
  |--<RCTRootView:0x7ff138d1b990; AX=N; AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 667}}; opaque; alpha=1>
  |  |--<RCTRootContentView:0x7ff138c1f060; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 667}}; opaque; alpha=1>
  |  |  |--<RCTView:0x7ff138c56eb0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 667}}; opaque; alpha=1>
  |  |  |  |--<RCTView:0x7ff138c3a7e0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 667}}; opaque; alpha=1>
  |  |  |  |  |--<RCTView:0x7ff138e51ea0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 667}}; opaque; alpha=1>
  |  |  |  |  |  |--<RCTView:0x7ff138e51b90; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 75}, {375, 592}}; AX.activationPoint={187.5, 371}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 75}, {375, 592}}; opaque; alpha=1>
  |  |  |  |  |  |  |--<RCTView:0x7ff138e54e60; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 75}, {375, 592}}; AX.activationPoint={187.5, 371}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 592}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |--<RCTView:0x7ff138e54b50; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 75}, {375, 592}}; AX.activationPoint={187.5, 371}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 592}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138d644e0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 75}, {375, 592}}; AX.activationPoint={187.5, 371}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 592}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138d3bce0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{0, 75}, {375, 592}}; AX.activationPoint={187.5, 371}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 592}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138d3b9d0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden Mit Facebook Anmelden oder Ich möchte mich Registrieren'; AX.frame={{32, 75}, {311, 592}}; AX.activationPoint={187.5, 371}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{32, 0}, {311, 592}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c15f80; AX=N; AX.label='oder Ich möchte mich Registrieren'; AX.frame={{32, 561}, {311, 106}}; AX.activationPoint={187.5, 614}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 486}, {311, 106}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c5e380; AX=Y; AX.label='Ich möchte mich Registrieren'; AX.frame={{32, 591}, {311, 44}}; AX.activationPoint={187.5, 613}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 30}, {311, 44}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c5e070; AX=N; AX.label='Ich möchte mich Registrieren'; AX.frame={{51.5, 602}, {272, 22}}; AX.activationPoint={187.5, 613}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{19.5, 11}, {272, 22}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTTextView:0x7ff138c3d710; AX=Y; AX.label='Ich möchte mich Registrieren'; AX.frame={{81.5, 602}, {212, 22}}; AX.activationPoint={187.5, 613}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{30, 0}, {212, 22}}; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c5dd60; AX=N; AX.frame={{51.5, 613}, {30, 0}}; AX.activationPoint={66.5, 613}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 11}, {30, 0}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c5da50; AX=N; AX.label='oder'; AX.frame={{32, 561}, {311, 18}}; AX.activationPoint={187.5, 570}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 18}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c3b680; AX=N; AX.frame={{210, 569}, {133, 2}}; AX.activationPoint={276.5, 570}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{178, 8}, {133, 2}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTTextView:0x7ff138c7cdc0; AX=Y; AX.label='oder'; AX.frame={{173, 561}, {28.5, 18}}; AX.activationPoint={187.25, 570}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{141, 0}, {28.5, 18}}; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138e54840; AX=N; AX.frame={{32, 569}, {133.5, 2}}; AX.activationPoint={98.75, 570}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 8}, {133.5, 2}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138e1f720; AX=Y; AX.label='Mit Facebook Anmelden'; AX.frame={{32, 505}, {311, 44}}; AX.activationPoint={187.5, 527}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 430}, {311, 44}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138e55f20; AX=N; AX.label='Mit Facebook Anmelden'; AX.frame={{69.5, 516}, {236.5, 22}}; AX.activationPoint={187.75, 527}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{37.5, 11}, {236.5, 22}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTTextView:0x7ff138e401d0; AX=Y; AX.label='Mit Facebook Anmelden'; AX.frame={{99.5, 516}, {176.5, 22}}; AX.activationPoint={187.75, 527}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{30, 0}, {176.5, 22}}; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c5a320; AX=N; AX.frame={{69.5, 527}, {30, 0}}; AX.activationPoint={84.5, 527}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 11}, {30, 0}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c7cab0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden'; AX.frame={{32, 75}, {311, 376}}; AX.activationPoint={187.5, 263}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 376}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c7c7a0; AX=N; AX.label='Clear text Passwort Passwort vergessen? Anmelden'; AX.frame={{32, 242}, {311, 177}}; AX.activationPoint={187.5, 330.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 167}, {311, 177}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c7c490; AX=Y; AX.id='login-button'; AX.label='Anmelden'; AX.frame={{32, 375}, {311, 44}}; AX.activationPoint={187.5, 397}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 133}, {311, 44}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c3d9a0; AX=N; AX.label='Anmelden'; AX.frame={{120.5, 386}, {134.5, 22}}; AX.activationPoint={187.75, 397}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{88.5, 11}, {134.5, 22}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTTextView:0x7ff138c3d4e0; AX=Y; AX.label='Anmelden'; AX.frame={{150.5, 386}, {74.5, 22}}; AX.activationPoint={187.75, 397}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{30, 0}, {74.5, 22}}; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c5adb0; AX=N; AX.frame={{120.5, 397}, {30, 0}}; AX.activationPoint={135.5, 397}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 11}, {30, 0}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138c5aaa0; AX=Y; AX.label='Passwort vergessen?'; AX.frame={{32, 340}, {311, 18}}; AX.activationPoint={187.5, 349}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 98}, {311, 18}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTTextView:0x7ff138c5a870; AX=Y; AX.label='Passwort vergessen?'; AX.frame={{216.5, 340}, {126.5, 18}}; AX.activationPoint={279.75, 349}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{184.5, 0}, {126.5, 18}}; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138d3adf0; AX=N; AX.label='Passwort'; AX.frame={{32, 287}, {311, 45}}; AX.activationPoint={187.5, 309.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 45}, {311, 45}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138d29a50; AX=N; AX.frame={{32, 330}, {311, 2}}; AX.activationPoint={187.5, 331}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 43}, {311, 2}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTSinglelineTextInputView:0x7ff138e3d400; AX=N; AX.label='Passwort'; AX.frame={{32, 287}, {311, 43}}; AX.activationPoint={187.5, 308.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 43}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTUITextField:0x7ff13a02f000; AX=Y; AX.id='password'; AX.value='Passwort'; AX.frame={{32, 287}, {311, 43}}; AX.activationPoint={187.5, 308.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 43}}; alpha=1; text=''>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<_UITextFieldContentView:0x7ff138e44820; AX=N; AX.frame={{32, 287}, {311, 43}}; AX.activationPoint={187.5, 308.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 43}}; alpha=1; UIE=N>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITextFieldLabel:0x7ff138e524a0; AX=Y; AX.label='Passwort'; AX.frame={{32, 300}, {311, 16}}; AX.activationPoint={187.5, 308}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 13}, {311, 16}}; alpha=1; UIE=N; text='Passwort'>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIAccessibilityTextFieldElement:0x604000844680; AX=Y; AX.value='Passwort'; AX.frame={{32, 287}, {311, 43}}; AX.activationPoint={187.5, 308.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138e55c10; AX=N; AX.label='Clear text'; AX.frame={{32, 242}, {311, 45}}; AX.activationPoint={187.5, 264.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 45}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTView:0x7ff138e55900; AX=N; AX.frame={{32, 285}, {311, 2}}; AX.activationPoint={187.5, 286}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 43}, {311, 2}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTSinglelineTextInputView:0x7ff138e55540; AX=N; AX.label='Clear text'; AX.frame={{32, 242}, {311, 43}}; AX.activationPoint={187.5, 263.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 43}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<RCTUITextField:0x7ff13a07ee00; AX=Y; AX.id='email'; AX.value='kiel'; AX.frame={{32, 242}, {311, 43}}; AX.activationPoint={52.5, 263.75}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {311, 43}}; alpha=1; text='kiel'>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIButton:0x7ff138d61260; AX=Y; AX.label='Clear text'; AX.frame={{319, 254}, {19, 19}}; AX.activationPoint={328.5, 263.5}; AX.traits='UIAccessibilityTraitButton'; AX.focused='N'; frame={{287, 12}, {19, 19}}; alpha=1>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIImageView:0x7ff138c8a120; AX=N; AX.frame={{321.5, 256.5}, {14, 14}}; AX.activationPoint={328.5, 263.5}; AX.traits='UIAccessibilityTraitImage'; AX.focused='N'; frame={{2.5, 2.5}, {14, 14}}; alpha=1; UIE=N>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIFieldEditor:0x7ff1390df800; AX=N; AX.value='kiel'; AX.frame={{32, 242}, {284, 43}}; AX.activationPoint={174, 263.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {284, 43}}; alpha=1; text='kiel'>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<_UITextFieldContentView:0x7ff138e58ea0; AX=N; AX.frame={{32, 242}, {284, 43}}; AX.activationPoint={174, 263.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {284, 43}}; alpha=1; UIE=N>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITextSelectionView:0x7ff138d370a0; AX=N; AX.frame={{32, 242}, {0, 0}}; AX.activationPoint={32, 242}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {0, 0}}; opaque; alpha=1; UIE=N>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7ff138d5a030; AX=N; AX.frame={{51.5, 254}, {2, 19.5}}; AX.activationPoint={52.5, 263.75}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{19.5, 12}, {2, 19.5}}; opaque; alpha=1; UIE=N>
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIAccessibilityTextFieldElement:0x604000843d80; AX=Y; AX.value='kiel'; AX.frame={{32, 242}, {311, 43}}; AX.activationPoint={52.5, 263.75}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'>
  |  |  |  |  |  |--<RCTView:0x7ff138e58b90; AX=N; AX.frame={{0, 0}, {375, 75}}; AX.activationPoint={187.5, 37.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {375, 75}}; opaque; alpha=1>
  |  |  |  |  |  |  |--<RCTView:0x7ff138e58880; AX=N; AX.frame={{106, 0}, {163, 75}}; AX.activationPoint={187.5, 37.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{106, 0}, {163, 75}}; opaque; alpha=1>
  |  |  |  |  |  |  |  |--<RCTImageView:0x7ff138e3fef0; AX=N; AX.frame={{106, 44}, {163, 31}}; AX.activationPoint={187.5, 59.5}; AX.traits='UIAccessibilityTraitImage'; AX.focused='N'; frame={{0, 44}, {163, 31}}; alpha=1>
  |  |  |  |  |  |--<RCTImageView:0x7ff138f45f30; AX=N; AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitImage'; AX.focused='N'; frame={{0, 0}, {375, 667}}; alpha=1>
      at Client.execute (node_modules/detox/src/client/Client.js:72:28)
      at InvocationManager.execute (node_modules/detox/src/invoke.js:11:33)
      at ActionInteraction.execute (node_modules/detox/src/ios/expect.js:178:29)
      at Element.typeText (node_modules/detox/src/ios/expect.js:282:73)
      at Context.it (e2e/#.spec.js:14:35)




detox[9293] DEBUG: [DetoxServer.js/DISCONNECT] role=tester, sessionId=f3d223bd-7306-2914-001b-b3c8e7449f72
detox[9293] DEBUG: [DetoxServer.js/DISCONNECT] role=testee, sessionId=f3d223bd-7306-2914-001b-b3c8e7449f72
child_process.js:640
    throw err;
    ^

Error: Command failed: node_modules/.bin/mocha e2e --opts e2e/mocha.opts --configuration ios.sim.debug --loglevel verbose     --grep :android: --invert     --artifacts-location "artifacts/ios.sim.debug.2018-08-28 06-55-55Z"
    at checkExecSyncError (child_process.js:600:11)
    at Object.execSync (child_process.js:637:13)
    at runMocha (/Users/danielschmidt/Projects/lokalportal/apps/app/node_modules/detox/local-cli/detox-test.js:129:6)
    at run (/Users/danielschmidt/Projects/lokalportal/apps/app/node_modules/detox/local-cli/detox-test.js:82:7)
    at Object.<anonymous> (/Users/danielschmidt/Projects/lokalportal/apps/app/node_modules/detox/local-cli/detox-test.js:217:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
@LeoNatan
Copy link
Contributor

It’s the same problem why it’s no possible to type different languages. This is a limitation of Earl Grey: google/EarlGrey#31

The workaround is to use replaceText.

Since it seems there is no interest in solving this issue in EG, I am not sure we should keep keyboard issues open.

@DanielMSchmidt
Copy link
Contributor Author

Maybe we should drop a note into the typeText documentation that numbers won't work and you should use replaceText if possible, what do you think?

@LeoNatan
Copy link
Contributor

Sure, that makes sense. We could also note that different languages (other than English) will probably not work, unless user sets the keyboard language before.

@baransu
Copy link

baransu commented Nov 12, 2018

If I'm using typeText on RN's TextInput with secureTextEntry it handles both numbers and special characters without a problem. Normal TextInput does not work.

@LeoNatan
Copy link
Contributor

Please install Detox 13.0.0 and try.

@lock lock bot locked as resolved and limited conversation to collaborators Jun 29, 2019
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

No branches or pull requests

4 participants