67 lines
2.5 KiB
TypeScript
67 lines
2.5 KiB
TypeScript
|
|
import type { WaitForOptions } from '../../types.js';
|
||
|
|
/**
|
||
|
|
*
|
||
|
|
* Wait for an element for the provided amount of
|
||
|
|
* milliseconds to be stable (not animating). Returns true if the selector
|
||
|
|
* matches at least one element that is stable in the DOM, otherwise throws an
|
||
|
|
* error. If the reverse flag is true, the command will instead return true
|
||
|
|
* if the selector does not match any stable elements.
|
||
|
|
*
|
||
|
|
* __Note 1:__ it's best to disable animations instead of using this command
|
||
|
|
*
|
||
|
|
* __Note 2:__ this command is only available for desktop and mobile browsers, not for native mobile apps.
|
||
|
|
*
|
||
|
|
* <example>
|
||
|
|
:index.html
|
||
|
|
<head>
|
||
|
|
<style>
|
||
|
|
div {
|
||
|
|
width: 200px;
|
||
|
|
height: 200px;
|
||
|
|
background-color: red;
|
||
|
|
}
|
||
|
|
#has-animation {
|
||
|
|
animation: 3s 0s alternate slidein;
|
||
|
|
}
|
||
|
|
\@keyframes slidein {
|
||
|
|
from {
|
||
|
|
margin-left: 100%;
|
||
|
|
width: 300%;
|
||
|
|
}
|
||
|
|
|
||
|
|
to {
|
||
|
|
margin-left: 0%;
|
||
|
|
width: 100%;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</style>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<div #has-animation></div>
|
||
|
|
<div #has-no-animation></div>
|
||
|
|
</body>
|
||
|
|
|
||
|
|
:waitForStable.js
|
||
|
|
it('should detect that element is instable and will wait for the element to become stable', async () => {
|
||
|
|
const elem = await $('#has-animation')
|
||
|
|
await elem.waitForStable({ timeout: 3000 });
|
||
|
|
});
|
||
|
|
it('should detect that element is stable and will not wait', async () => {
|
||
|
|
const elem = await $('#has-no-animation')
|
||
|
|
await elem.waitForStable();
|
||
|
|
});
|
||
|
|
* </example>
|
||
|
|
*
|
||
|
|
* @alias element.waitForStable
|
||
|
|
* @param {WaitForOptions=} options waitForStable options (optional)
|
||
|
|
* @param {Number=} options.timeout time in ms (default set based on [`waitforTimeout`](/docs/configuration#waitfortimeout) config value)
|
||
|
|
* @param {Boolean=} options.reverse if true it waits for the opposite (default: false)
|
||
|
|
* @param {String=} options.timeoutMsg if exists it overrides the default error message
|
||
|
|
* @param {Number=} options.interval interval between checks (default: `waitforInterval`)
|
||
|
|
* @return {Boolean} true if element is stable
|
||
|
|
* @uses utility/waitUntil, state/isStable
|
||
|
|
* @type utility
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
export declare function waitForStable(this: WebdriverIO.Element, { timeout, interval, reverse, timeoutMsg }?: WaitForOptions): Promise<void>;
|
||
|
|
//# sourceMappingURL=waitForStable.d.ts.map
|