Skip to content

feat: enrich Expedia domain skill with field-tested browser-harness findings#388

Open
PinkClaw wants to merge 1 commit into
browser-use:mainfrom
PinkClaw:enrich/expedia-domain-skill
Open

feat: enrich Expedia domain skill with field-tested browser-harness findings#388
PinkClaw wants to merge 1 commit into
browser-use:mainfrom
PinkClaw:enrich/expedia-domain-skill

Conversation

@PinkClaw
Copy link
Copy Markdown

@PinkClaw PinkClaw commented May 23, 2026

Summary

Substantially enriches the existing Expedia.ca domain skill with findings from real browser-harness + Mac Chrome CDP field testing (2026-05-22):

Key additions

  1. Mac Chrome + residential IP works — contradicts the earlier assumption that a cloud browser with residential proxies is required. With real Chrome on a home ISP, DataDome passes without captchas.

  2. goto_url() + new_tab() fallback pattern — navigate silently first, open new tab only if results don't load. Avoids unnecessary macOS window popups.

  3. [data-stid*="listing"] selector — the working selector for the URL-preload results page. Extracts up to 200 listings.

  4. CRITICAL: Do NOT click Search with URL pre-load — the pre-filled URL already returns results. Clicking Search reloads the page and resets any applied filters.

  5. Stop filter exclusivity — each checkbox shows exactly that stop count (not cumulative). Nonstop = 0 stops only, 1 stop = exactly 1 stop. Must click both with 5+ second waits for 0 OR 1 stop results.

  6. Dynamic filter IDs — filter IDs have random suffixes. Match by aria-label instead of hard-coded IDs.

  7. 10 key lessons — comprehensive lessons section covering all field-tested quirks.

Testing

All additions field-tested on live Expedia.ca using browser-harness with Mac Chrome CDP proxy.


Summary by cubic

Enriches the Expedia.ca flight search domain skill with field-tested guidance for stable automation, focusing on direct URL navigation, reliable selectors, and practical anti-bot handling. Improves success rates by using real Chrome on residential IP and avoiding fragile UI flows.

  • New Features
    • Added agent-workspace/domain-skills/expedia/flights-search.md with tested patterns and 10 key lessons.
    • URL-first flow with goto_url() + new_tab() fallback; do not click Search when the URL is pre-filled.
    • Verified that real Mac Chrome + residential IP passes DataDome; use cloud + residential proxy only for datacenter IPs.
    • Working results selector [data-stid*="listing"] and examples to extract up to 200 listings.
    • Documented stop filter exclusivity, dynamic filter IDs; match by aria-label and wait 5+ seconds between filter clicks.
    • Guidance on fresh browser contexts, non-headless mode, and 15–30s waits for /Flights-Search loads.

Written for commit 531bb25. Summary will update on new commits. Review in cubic

…indings

Key additions:
- Mac Chrome + residential IP = no DataDome issues (contradicts
  earlier 'cloud browser required' assumption)
- goto_url() + new_tab() fallback navigation pattern for browser-harness
- [data-stid*="listing"] selector for URL-preload results extraction
- CRITICAL: Do NOT click Search with URL pre-load (resets filters)
- Stop filter exclusivity quirk (each checkbox = exact stop count, not
  cumulative)
- Dynamic filter IDs — use aria-label matching instead of hard-coded IDs
- 5-second wait is required between filter clicks (full page reload)
- 10 key lessons from field testing with real Chrome
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="agent-workspace/domain-skills/expedia/flights-search.md">

<violation number="1" location="agent-workspace/domain-skills/expedia/flights-search.md:147">
P2: Post-search wait selector `[data-testid*="flight"]` is inconsistent with documented working results selectors (`div[data-testid="listing"]`, `div[role="listitem"]`, `div[data-stid*="listing"]`). This risks false timeouts when results render without any element having a `data-testid` containing "flight".</violation>
</file>

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

After clicking, wait for results:
```python
page.wait_for_url("**/Flights-Search**", timeout=15000)
page.wait_for_selector('[data-testid*="flight"]', timeout=30000)
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot May 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Post-search wait selector [data-testid*="flight"] is inconsistent with documented working results selectors (div[data-testid="listing"], div[role="listitem"], div[data-stid*="listing"]). This risks false timeouts when results render without any element having a data-testid containing "flight".

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At agent-workspace/domain-skills/expedia/flights-search.md, line 147:

<comment>Post-search wait selector `[data-testid*="flight"]` is inconsistent with documented working results selectors (`div[data-testid="listing"]`, `div[role="listitem"]`, `div[data-stid*="listing"]`). This risks false timeouts when results render without any element having a `data-testid` containing "flight".</comment>

<file context>
@@ -0,0 +1,323 @@
+After clicking, wait for results:
+```python
+page.wait_for_url("**/Flights-Search**", timeout=15000)
+page.wait_for_selector('[data-testid*="flight"]', timeout=30000)
+```
+
</file context>
Fix with Cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant