Yury Semikhatsky
ff99aa33b0
fix: input events triggered by playwright actions should have composed=true ( #28730 )
...
Fixes https://github.com/microsoft/playwright/issues/28726
2023-12-21 15:25:16 -08:00
Pavel Feldman
0a7a10d0f6
feat(vrt): allow providing screenshot style ( #28229 )
2023-11-30 17:42:45 -08:00
Playwright Service
bb241abaff
feat(webkit): roll to r1944 ( #28148 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-11-15 19:34:53 +01:00
Mattias Wallander
c6d154f9c4
feat: Add support for dispatching device motion events ( #28067 )
...
References #27887 .
2023-11-13 08:58:46 -08:00
Max Schmitt
5f527fedb1
fix: JSHandle preview text for non-ascii attributes/children ( #28038 )
...
This surfaced in .NET that the string in the driver got incorrectly cut,
then transferred to .NET as an invalid UTF8 character
[`\ud835`](https://charbase.com/d835-unicode-invalid-character ) which
.NET wasn't able to parse and threw an error.
Drive-by: Move similar function from
`packages/playwright-core/src/client/page.ts` into isomorphic
`stringUtils`.
https://github.com/microsoft/playwright-dotnet/issues/2748
2023-11-09 00:11:01 +01:00
Mattias Wallander
5a9fa69c6d
feat: Add support for dispatching device orientation events ( #27960 )
...
Fixes #27887
2023-11-08 09:50:25 -08:00
Yury Semikhatsky
36c4c24f8a
fix: only convert input files for browser collocated with server ( #27873 )
...
Reference #27452
Fixes #27792
2023-11-01 08:40:12 -07:00
Pavel Feldman
b807c974c3
chore: allow passing path to property in toHaveJSProperty ( #27495 )
...
Fixes https://github.com/microsoft/playwright/issues/27487
2023-10-06 15:47:07 -07:00
Yury Semikhatsky
ac48a47d33
feat: toHaveAttribute without value ( #27418 )
...
This time not doing it in other languages due to unjustified generator
complexity.
Fixes #27341
2023-10-04 09:27:28 -07:00
Dmitry Gozman
741c649d56
fix(trace viewer): make sure target inside shadow dom is highlighted ( #26823 )
...
References #24532 .
2023-08-31 12:46:49 -07:00
Dmitry Gozman
0ecc13038f
fix(textContent): make it work for ShadowRoot ( #26690 )
...
It used to work, but regressed in v1.36.
Fixes #26636 .
2023-08-24 12:59:42 -07:00
Dmitry Gozman
97d55e275d
fix(locator): locator(locator) method uses internal:chain instead of >> ( #24235 )
...
Usually, we can just chain two locators with `>>` to implement
`Locator.locator(locator)`. However, this does not play nicely with more
advanced inner locators like `or` and `and`:
```ts
const child = page.locator('input').or(page.locator('button'));
page.locator('parent').locator(child);
```
One would expect the above to locate "input or button" inside a
"parent". However, currently it locates "input inside a parent" or
"button", because it's translated to `parent >> input >>
internal:or="button"`.
To fix this, we have to wrap inner locator into `internal:chain` and
query it separately from the parent.
Fixes #23724 .
2023-07-14 12:21:45 -07:00
Dmitry Gozman
5821c547aa
fix(selector generator): use the same label definition as getByLabel ( #23846 )
...
This extracts `getElementLabels` helper function to be used both for
generating and querying.
2023-06-22 08:34:08 -07:00
Dmitry Gozman
fe5c9dad4d
fix(locators): allow identical frameLocators inside and/or/has ( #23740 )
...
So, the following will work:
```
page.frameLocator('iframe').locator('span').or(page.frameLoactor('iframe').locator('div'))
```
The following will not work, because frame locators are not exactly the
same:
```
page.frameLocator('#iframe1').locator('span').or(page.frameLoactor('#iframe2').locator('div'))
```
Also improve the error message to be more readable and include the
locator.
Fixes #23697 .
2023-06-19 15:22:26 -07:00
Dmitry Gozman
de422b5afb
chore: speedup multiple roleUtils calls ( #23745 )
...
When generating a selector, we tend to match by role and call various
roleUtils methods multiple times.
Apply the usual pattern for "nested operations counter" and aggressively
cache the results.
2023-06-16 11:39:39 -07:00
Dmitry Gozman
5b2e8a6a7a
chore: optional root for generateSelector ( #23692 )
2023-06-13 21:25:39 -07:00
Andrey Lushnikov
3a00fc4edf
fix: call focus() twice to workaround firefox not focusing element ( #23535 )
...
When focus is moved from one tab to another, it might require calling
`focus()` twice to actually focus an element in Firefox.
Fixes https://github.com/microsoft/playwright/issues/23117
2023-06-05 16:46:52 -07:00
Jasiel Guillén
700062c836
feat(screenshot): Add customizable color option for masked elements ( #23185 )
...
I added a new option to the screenshot method to customize the color of
the box when we want to mask some elements for the screenshot.
The default color is pink `#FF00FF`, but with this new option you can
specify the color you like the most, like a nice green `#00FF00`:
```js
await page.screenshot({
mask: [page.locator('div').nth(5)],
maskColor: "#00FF00",
})
```

---------
Signed-off-by: Jasiel Guillén <darkensses@gmail.com>
2023-05-22 18:44:44 -07:00
Dmitry Gozman
80f46892cd
fix(getByLabel): ignore empty aria-label ( #22935 )
...
Accessible name computation ignores empty aria-label, and so should
getByLabel.
Fixes #22915 .
2023-05-10 10:38:46 -07:00
Dmitry Gozman
160888df99
feat(locators): reland locator.and(locator) ( #22850 )
...
Removed in #22223 .
Fixes #22585 .
2023-05-05 11:14:01 -07:00
Pavel Feldman
116fb349ce
chore: allow configuring test id attribute for codegen ( #22716 )
...
Fixes: https://github.com/microsoft/playwright/issues/22653
2023-04-29 12:04:33 -07:00
Dmitry Gozman
08cef43e82
feat(locator): remove locator.and and locator.not ( #22223 )
...
Not shipping for now, after API review.
2023-04-05 16:28:13 -07:00
Dmitry Gozman
35afb056ea
feat(locator): filter({ hasNotText }) ( #22222 )
...
The opposite of `filter({ hasText })`.
2023-04-05 14:13:28 -07:00
Dmitry Gozman
bc1de5f28d
feat(locator): filter({ hasNot }) ( #22219 )
...
This is the opposite of `filter({ has })`.
2023-04-05 12:45:46 -07:00
Dmitry Gozman
e6148bb725
feat: Locator.not(locator) ( #22066 )
2023-03-30 08:52:30 -07:00
Pavel Feldman
968abd27d5
chore: do not use attributes for trace target annotation ( #22075 )
...
Fixes: https://github.com/microsoft/playwright/issues/22004
2023-03-29 23:17:17 -07:00
Dmitry Gozman
6929214dbf
feat(expect): expect(locator).toBeAttached() ( #22067 )
...
Fixes #13467 .
2023-03-29 11:09:17 -07:00
Dmitry Gozman
525097d465
feat: Locator.filter(locator) ( #21975 )
...
Produces a locator that matches both locators.
Implemented through `internal:and` selector.
Fixes #19551 .
2023-03-27 14:29:30 -07:00
Dmitry Gozman
d10fac4f6a
feat: Locator.or(locator) ( #21884 )
2023-03-22 15:28:59 -07:00
Pavel Feldman
c45d8749b0
chore: split trace events into phases ( #21696 )
2023-03-15 22:33:40 -07:00
Dmitry Gozman
ccd5d7fd10
fix(hit target): workaround webkit elementsFromPoint bug ( #21642 )
...
Fixes #21596 .
2023-03-13 19:33:56 -07:00
Pavel Feldman
cffb6ac269
chore: move sever/isomorphic to utils/ to use it in client ( #21445 )
2023-03-06 18:49:14 -08:00
Pavel Feldman
47427e87ec
chore: do not use module.exports in the injected esm files ( #21412 )
...
Follow up to #17145
2023-03-05 20:01:35 -08:00
Pavel Feldman
d7a0b3bb4e
chore: implement pick locator in trace viewer ( #20965 )
...
Fixes https://github.com/microsoft/playwright/issues/7853
2023-02-17 11:19:53 -08:00
Andrey Lushnikov
1db04f2839
fix: simplify protocol for toBeInViewport ( #20960 )
2023-02-16 11:02:19 -08:00
Andrey Lushnikov
72942e81d5
chore: fixes to toBeInViewport ( #20870 )
2023-02-13 15:21:40 -08:00
Dmitry Gozman
6b69d23f44
fix(actions): ignore indeterminate for isChecked api ( #20834 )
...
Fixes #20190 .
2023-02-10 18:56:45 -08:00
Dmitry Gozman
789b1c75e6
fix(expect): report received when timedOut during oneShot ( #20806 )
2023-02-10 14:59:21 -08:00
Andrey Lushnikov
68e170ef89
feat: implement expect(locator).toBeInViewport() ( #20668 )
...
The method accepts a `ratio` option to assert the ratio
of the element in viewport. `ratio` defaults to `Number.MIN_VALUE`.
NOTE: this reverts commit d950f5b6ee and
adds `ratio` option support + does the rename.
Fixes #8740
2023-02-10 04:33:22 -08:00
Dmitry Gozman
d950f5b6ee
chore: remove toIntersectViewport for the next release ( #20232 )
...
Mostly reverts #19901 .
2023-01-19 15:04:09 -08:00
Andrey Lushnikov
2a49c5e498
feat(expect): introduce expect(locator).toIntersectViewport() ( #19901 )
...
This is a new web-first assertion that should be used like this:
```ts
test('should work', async ({ page }) => {
const locator = page.locator('body');
// New web-first assertion.
await expect(locator).toIntersectViewport();
// The same functionality.
await expect.poll(() => locator.viewportRatio()).toBeGreaterThan(0);
});
```
Fixes #8740
2023-01-06 16:56:24 -08:00
Dmitry Gozman
0fba4d5611
chore: migrate waitForFunction to not use rerunnable task ( #19730 )
2022-12-27 17:22:44 -08:00
Dmitry Gozman
0b223b9036
fix(hit target): account for iframes with padding ( #19732 )
...
Padding on iframes moves the `documentElement` inside the iframe, so we
should account for it when converting coordinates between frames.
Fixes #19613 .
2022-12-27 16:59:34 -08:00
Dmitry Gozman
24f2ccb4ca
feat(getByLabel): support aria-label ( #19726 )
...
References #19284 .
2022-12-27 12:43:55 -08:00
Dmitry Gozman
e12cf19012
chore: refactor frame.expect to not use rerunnable task ( #19626 )
2022-12-21 15:31:08 -08:00
Dmitry Gozman
ae2b1ac5e8
chore: move some injected code to InjectedScript ( #19609 )
2022-12-20 17:26:54 -08:00
Dmitry Gozman
a27f1f744f
feat(getByLabel): support aria-labelledby ( #19456 )
...
Testing library also treats them equally.
Fixes #19284 .
2022-12-14 13:51:05 -08:00
Pavel Feldman
7aa3935dcc
chore: match selected options by both value and label ( #19316 )
2022-12-07 09:04:32 -08:00
Dmitry Gozman
48182a4eb2
chore: refactor code around text selectors ( #19278 )
2022-12-05 14:08:54 -08:00
Dmitry Gozman
941090f0c4
fix(click): account for transformed iframes ( #18926 )
...
- Properly convert coordinates for iframes with non-zero borders.
- IFrames that have `transform` anywhere in the ancestors skip
`hitPoint`-based check because we cannot reliably translate the viewport
point into frame document's coordinates.
Fixes #18245 .
2022-11-18 16:51:39 -08:00