check_selectors reports FAILED for two selectors that are fine.
The wait before them is satisfied by a placeholder. get_sidebar_section
returns the first section whose id starts with react-aria, and that section is
in the DOM as soon as the panel opens, holding a "Loading..." placeholder. So
`wait_until(get_sidebar_section() is not None)` returns immediately, and the
two selectors that read the panel's text then read "Loading..." and raise.
The report's own output shows it: the section that resolves OK has the text
"Loading...", and the two entries under it fail.
Before, on a healthy en-US account:
OK get_sidebar_section 'Loading...'
FAILED get_points_earned_from_searches_on_points_breakdown
FAILED get_close_button_on_points_breakdown
OK=10 ABSENT=1 FAILED=2
After:
OK get_sidebar_section "Points breakdown | Today's points | 480 | To"
OK get_points_earned_from_searches_on_points_breakdown (25, 25)
OK get_close_button_on_points_breakdown
OK=12 ABSENT=1 FAILED=0
This matters more than a cosmetic miscount. The README asks people to paste
this output into bug reports and says FAILED is what needs fixing, so a false
FAILED sends both the reporter and whoever triages it after selectors that
work. The bot itself was never affected, read_search_points reaches the same
selector through wait_for_element and so does wait.
Waiting on the content rather than the container keeps a genuine breakage
reporting FAILED; it just costs the timeout first.
Fixes#26.
`requires-python` was `>=3.14`. On anything older poetry declines to create an
environment, and it says so on stderr while leaving stdout empty. The README
tells the user to run `iex (poetry env activate)`, `iex` only sees stdout, and
PowerShell reports
Invoke-Expression : Cannot bind argument to parameter 'Command' because it
is null.
which points at `iex` rather than at the install that never happened. The
first reply on the issue guessed the reporter was missing `iex`, which is a
built-in alias, so the error is actively misleading.
3.14 looks stricter than anything the code needs. Every file in src/ compiles
on 3.10, no 3.13 or 3.14 only syntax appears anywhere in the tree, and the
full task set was run end to end on 3.12.10 against a live account with all
six tasks completing. The dependency graph agrees: numpy is the highest floor
in the lock at >=3.12, so 3.12 is where the real constraint sits.
Verified after the change on 3.12.10: `poetry install` creates the
environment, `poetry env activate` emits a real activation command instead of
nothing, `iex (poetry env activate)` activates in PowerShell, and every
dependency plus every module under src/ imports.
The lock is regenerated rather than left stale, since `requires-python` feeds
its content hash. The only substantive change is a typing_extensions marker
for python_version < 3.13; the package set is unchanged at 203. Regenerated
with poetry 2.4.1 to match the version that wrote the existing file.
The README gains the version bump and a short note on the failure, so anyone
who hits it while running an older Python can recognise it.