Skip to content

v2.9.6

Choose a tag to compare

@igorzheludkov igorzheludkov released this 02 Sep 20:25
· 66 commits to main since this release

input_text: stop reporting the field's own behaviour as a failed write

Seven defects, each found on a real device, each of which made a write that landed look broken or a broken one look landed:

  • Masked fields (secureTextEntry / android:password) expose bullets, not text. The mask was read as the prior value, so the expected result became a string of bullets no write could match, and the retry then cleared the field and typed the bullets into it for real. Masked fields are now detected and reported as delivered but unverifiable.
  • iOS reports an empty field's AXValue as its placeholder, with no placeholder attribute to subtract. Appending to an empty field wrote "Enter nameabc" into the app and reported success. The placeholder is now read from the fiber target and subtracted, as Android already did with hint.
  • autoCapitalize defaults to "sentences", so a typed abc lands as Abc. The exact compare failed the write and burned the retry reproducing it.
  • maxLength: a full field truncates identically on every attempt, so the retry cleared it and typed the same truncated text again. It is now named as the cause instead.
  • keyboardType is bypassed by both write paths, so letters reach a number-pad field. Still allowed, now noted in the response.
  • native typing types into whatever the OS reports as focused, which a fiber tap does not move. The verdict now names the field it wrote.
  • A value that gained formatting is either a display mask or a field reinterpreting the number ("3700" -> "37.00"). The text alone cannot tell those apart, so the diagnosis names both.

Keyboard coverage on coordinate-emitting tools

get_screen_layout, measure and inspect_at_point print the same keyboard line get_screen_state does; the latter two say outright when the coordinate they hand back sits behind it.

Also

execute_in_app called without expression now says what it needs and what it received.