Skip to content

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

Open
PinkClaw wants to merge 2 commits 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 2 commits 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 and higher success rates. Also fixes a broken post-search selector in examples to prevent timeouts.

  • 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 div[data-stid*="listing"] and examples to extract up to 200 listings.
    • Documented stop filter exclusivity and 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.
  • Bug Fixes

    • Replaced [data-testid*="flight"] with div[data-stid*="listing"] in the post-search wait example to avoid result-load timeouts.

Written for commit c130d5a. 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

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

Fix all with cubic | Re-trigger cubic

Comment thread agent-workspace/domain-skills/expedia/flights-search.md Outdated
Replace [data-testid*="flight"] with div[data-stid*="listing"]
to match the field-tested finding documented in the same skill.
The old selector finds no elements on Expedia results pages,
causing agents that follow this example to timeout.
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 (changes from recent commits).

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: Selector mismatch in Step 6 wait condition: uses URL-preload selector for form-submitted results flow</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('div[data-stid*="listing"]', timeout=30000)
Copy link
Copy Markdown
Contributor

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

Choose a reason for hiding this comment

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

P2: Selector mismatch in Step 6 wait condition: uses URL-preload selector for form-submitted results flow

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>Selector mismatch in Step 6 wait condition: uses URL-preload selector for form-submitted results flow</comment>

<file context>
@@ -144,7 +144,7 @@ Search button locators:
 ```python
 page.wait_for_url("**/Flights-Search**", timeout=15000)
-page.wait_for_selector('[data-testid*="flight"]', timeout=30000)
+page.wait_for_selector('div[data-stid*="listing"]', timeout=30000)

</file context>


</details>

```suggestion
page.wait_for_selector('div[data-testid="listing"]', timeout=30000)
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