## Supported click scenarios
These are some of the corner cases that Playwright aims to support.
### Positioning
- Element is outside of the viewport.
```html
Some content
```
Playwright scrolls the element into the viewport if at all possible.
- Empty element with non-empty pseudo.
```html
```
Playwright retrieves the actual visible regions of the target element and clicks at the pseudo.
- Some part of the element is always outside of the viewport.
```html
onetwo
```
Playwright retrieves the actual visible regions of the target element and clicks at the visible part.
- Inline element is wrapped to the next line.
Playwright retrieves the actual visible regions of the target element and clicks at one of the inline boxes.
- Element is rotated with transform.
```html
```
Playwright retrieve the actual visible regions of the target element and clicks at the transformed visible point.
- Element is deep inside the iframes and/or shadow dom.
Playwright just clicks it.
### Dynamic changes
- Element appears dynamically using display or visibility.
```html
```
Playwright waits for the element to be visible before clicking.
- Element is animating in.
```html
```
Playwright waits for the element to stop moving before clicking.
- Another element is temporary obscuring the target element.
```html
```
For example, the dialog is dismissed and is slowly fading out. Playwright waits for the obscuring element to disappear.
More precisely, it waits for the target element to actually receive pointer events.
- Element is replaced with another one after animation.
```html
```
Playwright waits for the element to be at a stable position, detects that it has been removed from the DOM and retries.
### Targeting
- Element has `pointer-events: none`.
```html
```
Playwright will wait until `pointer-events: none` goes away or times out. However, if the element is inside of a `