Commit Graph
11 Commits
Author SHA1 Message Date
abhijitgorde5-crypto 4c67f3f46e Merge upstream main and resolve merge conflict in src/tab_utils.py 2026-09-02 18:22:39 +05:30
mardausdennis 8ff99c0e9d cover the rewards urls the daily set actually uses
Matching on bing.com/search alone was too narrow. Turn referrals into rewards is a real daily set activity that awards points and it points at a rewards url, so the filter skipped it and the run came up short without saying why.

Three shapes now count, bing.com/search, bing.com/rewards and rewards.bing.com. The bing app promo from #45 sits on bingapp.microsoft.com and stays out of all three, which is what keeps that fix intact. Five tests, one per shape plus a mixed panel.
2026-08-30 18:15:24 +02:00
abhijitgorde5-crypto 27a98d9b93 Fix StaleElementReferenceException, add Ollama offline fallback, and PIL visual search generator 2026-08-29 23:41:57 +05:30
mardausdennis 806156c6c6 do not click a different streak when the daily set label is missing
The positional fallback returned whatever sat at index 3 of the streaks section. On a partially rendered page that is not the daily set: observed live returning 'Mobile App | Check-in: 0/1', and clicking it opens the app store page instead of the panel, which is what #45 and #46 describe. It now checks the label before handing the button back and raises otherwise, so the task is skipped rather than the wrong streak clicked.
2026-08-29 18:46:47 +02:00
mardausdennis f23afb7568 match daily set activities by target instead of by position
get_daily_set_elements returned everything after the first link in the panel. The panel also carries promotional links, so position hands one back as an activity. Clicking it leaves rewards.bing.com and every element captured before that goes stale, which is the exception reported in #45.

Activities always point at a Bing search, so match on that. When nothing matches it returns nothing rather than falling back to position, since clicking a promo is worse than skipping the task and complete_bing_daily_set already reports the shortfall.
2026-08-28 11:00:44 +02:00
mardausdennis bf79e188f2 address review: scroll only when needed and smoothly, tighten the visual search needle
scrollIntoView re-centered every element unconditionally and instantly, which is the page jump between the daily set and explore on bing. The pointer move now scrolls only when the element is actually outside the viewport, smoothly, and polls the rect until the async scroll settles before computing the path.

Visual search matches the full 'visual search streak' label. Plain 'visual search' can also hit a dashboard element that goes stale mid-interaction, and the guessed 'image search' needle is gone.
2026-08-25 22:23:13 +02:00
mardausdennis 3dba5aa849 add a selector self check and stop reporting skipped tasks as done
check_selectors.py walks every selector and prints what resolved, what is absent and what broke, along with browser, driver, page language and the earn section ids. Absent is a normal result for a task a variant does not ship. It completes no activities and claims nothing, so it is safe to run for a bug report.

complete_explore_on_bing_tasks now raises when the section is missing instead of returning quietly, which made complete_all_tasks print [OK] for a task that never ran.

The visible labels the lookups match on are collected in one Labels class. The selectors are market independent but still language dependent, and this makes that explicit and fixable in one place.
2026-08-25 14:14:04 +02:00
mardausdennis 9842d608c8 address review: find the daily set opener outside a dedicated section
The daily set opener lives in the streaks section, not in a section of its own, so scoping the lookup to a dedicated section disabled the task on every layout. Match on 'daily set streak' instead, since 'daily set' also hits the level up entry.

Visual search keeps a positional fallback inside streaks because its label is not confirmed on layouts that ship it. Claim now prefers an exact label match so the 'Ready to claim' heading cannot win.
2026-08-25 00:04:28 +02:00
mardausdennis bea185b94d fix selectors that only resolve in the en-US market
Absolute XPaths break outside en-US, where an extra exploreonbing section shifts every positional section index, so every task failed before it started.

Select by visible text, id suffix and visibility instead of position, take the visible copy of ids that are emitted twice for responsive layout, and raise NoSuchElementException for tasks a variant does not ship so the run skips them instead of aborting.
2026-08-24 23:03:09 +02:00
Carl Furtado f392d3e7a3 optimize search completion speed 2026-08-20 10:29:34 -04:00
Carl Furtado dd50c850ac first commit 2026-08-19 14:03:22 -04:00