feat: enrich Expedia domain skill with field-tested browser-harness findings#388
Open
PinkClaw wants to merge 2 commits into
Open
feat: enrich Expedia domain skill with field-tested browser-harness findings#388PinkClaw wants to merge 2 commits into
PinkClaw wants to merge 2 commits into
Conversation
…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
Contributor
There was a problem hiding this comment.
1 issue found across 1 file
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
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.
Contributor
There was a problem hiding this comment.
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) |
Contributor
There was a problem hiding this comment.
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)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
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.
goto_url()+new_tab()fallback pattern — navigate silently first, open new tab only if results don't load. Avoids unnecessary macOS window popups.[data-stid*="listing"]selector — the working selector for the URL-preload results page. Extracts up to 200 listings.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.
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.
Dynamic filter IDs — filter IDs have random suffixes. Match by
aria-labelinstead of hard-coded IDs.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
agent-workspace/domain-skills/expedia/flights-search.mdwith tested patterns and 10 key lessons.goto_url()+new_tab()fallback; do not click Search when the URL is pre-filled.div[data-stid*="listing"]and examples to extract up to 200 listings.aria-labeland wait 5+ seconds between filter clicks./Flights-Searchloads.Bug Fixes
[data-testid*="flight"]withdiv[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