Comments (2)
It is unlikely that we make steps for sync operations since e2e tests are inherently async and there is an await workaround. Closing as out of scope for Playwright.
Btw, this.page.locator('.task-item').filter({ has: / * some other complex locators */})
isn't really "getting" the locator, it just builds a selector string in memory for this locator.
from playwright.
It is unlikely that we make steps for sync operations since e2e tests are inherently async and there is an await workaround. Closing as out of scope for Playwright.
Fair enough. I was actually wondering, while writing the issue, if a synchronous test.step
could actually break functionality in reporter(s), for instance. It was a QoL ask anyway.
Btw,
this.page.locator('.task-item').filter({ has: / * some other complex locators */})
isn't really "getting" the locator, it just builds a selector string in memory for this locator.
I understand how Playwright locators work 😄 - I don't see what's wrong with my statement or example code, the method does return a Locator
. It just encapsulates the logic inside a POM method so the person developing the test doesn't need to remember how to build that specific locator.
This is what I would normally do, with the -supported- async test.step
// POM
class TodoPage {
// [...]
getLocatorForTask(contents: string): Promise<Locator> {
return test.step(`[TodoPage] get locator for task containing "${contents}" in either name or description`, () => {
return this.page.locator('.task-item').filter({ has: / * some other complex locators */});
});
}
}
// test
await expect(await todoPage.getLocatorForTask('foo')).toBeVisible();
(I can of course get rid of the cosmetic test.step
and make the method syncrhonous, but that wasn't the main point - maybe I didn't pick the best example)
from playwright.
Related Issues (20)
- [Bug]: DEBUG=pw:webserver no longer works (regression) HOT 2
- [Bug]: Locators do not auto-wait when resolved to multiple elements (Strict mode) HOT 4
- [Bug]: UI mode highlights all tests that import fixtures in red, despite running tests correctly; claims they shouldn't be imported HOT 1
- [Feature]: Support Ubuntu 24.04 HOT 1
- [Bug]: Viewing tests with -UI HOT 2
- Can't get more workers to run - Playwright HOT 3
- [Bug]: Since v1.43, "Error: Error: browserType.launch: Executable doesn't exist" HOT 2
- Can't get parallel running for multiple tests in same file - Playwright HOT 2
- [Bug]: Adding an assertion in a fixture does not trigger retries HOT 1
- [Bug]: No tests passing for a simple component (component testing) HOT 1
- [Feature]: Allow page to listen for custom events `page.on(CUSTOM_EVENT, () =>` HOT 5
- [Bug]: Unable to run playwright tests using github actions HOT 8
- [Bug]: Timing issues with dynamically generated tests. (Updated, originally thought this was a globbing issue) HOT 8
- [Question] Why is 'setDownloadBehavior' required for connect_over_cdp? Any workaround? HOT 3
- [Bug]: playwright tests do not show in test tab in vscode, no errors, cli works HOT 5
- [Bug]: invoke beforeall method with condition skip in loop will skip entire test instead of respective each loop tests HOT 5
- [Bug]: Arch Linux & your OS is not officially supported by Playwright HOT 1
- [Bug]: @tags added using new syntax as per v1.42 is not shown in UI mode HOT 2
- [Feature]: Set proxy in Page HOT 1
- [Bug]: Missing projects/tests when using multiple projects (folders) from 1.43.x HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from playwright.