3 ms·
> Puppeteer (JS), Playwright (Python) and Selenium (Python) Lots of questionable design choices here. - Why not all JS or all Python? - Why is the Pla
by CharlieDigital 3y ago
> Puppeteer (JS), Playwright (Python) and Selenium (Python)
Lots of questionable design choices here.
- Why not all JS or all Python?
- Why is the Playwright code scrolling?
- Why is the Playwright code using explicit timeouts?
- Why is the Playwright code using `evaluate` rather than `locators` and `click`?
- eneuman 3y ago- Language Choice (JS vs Python): Puppeteer in JS and Playwright in Python showed near-identical performance on an AWS c5.large instance. This negated the need to test Puppeteer and Playwright in the same language for this comparison. - Playwright Scrolling: To emulate a user experience, all three tools employed infinite scrolling, which was necessary since Wallapop doesn't have pagination, you have to scroll to get results. - Explicit Timeouts: Used for greater stability, especially when contending with network inconsistencies. Initially, I used API response events for triggering scrolls, but this approach was less reliable. - Evaluate vs. Locators & Click: My initial tests indicated evaluate was marginally faster than locators and click. I appreciate the scrutiny and I might include a JS vs Python comparison in a future test.
- CharlieDigital 3y agoI think the approach misses the point. Playwright's auto-wait with `locators` is what makes it worth adopting because it means you don't need to use fixed waits. Auto-waits save much of the idle time waiting.