mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
hintText and placeholderValue are the accessible-name ladder, derived from the live element, and compiling them to [placeholder="..."] made them name the wrong field or none at all. A field labelled by an aria-label or a bound <label> carries no placeholder, so it resolved against the dump on the goja host and reached nothing here; one carrying both answered to its placeholder here where the dump answers to its aria-label, which lands a find on an element nobody named. Both keys read the same fieldHint elementHandle and the hierarchy dump (internal/driver/chrome/driver.go) derive the fact with, so a selector cannot name a field this host calls something else. An empty hint names nothing rather than everything that is no field: both producers write the fact only where the ladder answered. placeholder stays the attribute the markup writes, which is what the dump carries under that name too, so a field whose hint is something else still answers to it on both hosts.
@sanderling/spec
TypeScript spec API for sanderling, a property-based UI fuzzer for Android, iOS and web apps.
A spec exports properties (what the app must always or eventually do), extractors (structured state read off the UI), and action generators (what sanderling is allowed to do). The sanderling CLI evaluates the spec against a running app once per step.
npm install --save-dev @sanderling/spec
Getting started installs the CLI and runs a first spec. The spec language reference lists every primitive, and the case study walks a complete spec end to end.
The CLI bundles this package's TypeScript sources at run time, so keep the CLI and the package on the same release.