@ParametersAreNonnullByDefault
public class Selenide
extends java.lang.Object
open(String)
for opening the tested application page and
$(String)
for searching web elements.Constructor and Description |
---|
Selenide() |
Modifier and Type | Method and Description |
---|---|
static SelenideElement |
$(org.openqa.selenium.By seleniumSelector)
Locates the first element matching given CSS selector
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
$(org.openqa.selenium.By seleniumSelector,
int index) |
static SelenideElement |
$(java.lang.String cssSelector)
Locates the first element matching given CSS selector
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
$(java.lang.String cssSelector,
int index)
Locates the Nth element matching given criteria
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
$(org.openqa.selenium.WebElement webElement)
Wrap standard Selenium WebElement into SelenideElement
to use additional methods like shouldHave(), selectOption() etc.
|
static SelenideElement |
$(org.openqa.selenium.WebElement parent,
org.openqa.selenium.By seleniumSelector)
Deprecated.
please use $(parent).$(By) which is the same
(method will not be removed until 4.x or later)
|
static SelenideElement |
$(org.openqa.selenium.WebElement parent,
org.openqa.selenium.By seleniumSelector,
int index)
Deprecated.
please use $(parent).$(By, int) which is the same
(method will not be removed until 4.x or later)
|
static SelenideElement |
$(org.openqa.selenium.WebElement parent,
java.lang.String cssSelector)
Deprecated.
please use $(parent).$(String) which is the same
(method will not be removed until 4.x or later)
|
static SelenideElement |
$(org.openqa.selenium.WebElement parent,
java.lang.String cssSelector,
int index)
Deprecated.
please use $(parent).$(String, int) which is the same
(method will not be removed until 4.x or later)
|
static ElementsCollection |
$$(org.openqa.selenium.By seleniumSelector)
Locates all elements matching given CSS selector.
|
static ElementsCollection |
$$(java.util.Collection<? extends org.openqa.selenium.WebElement> elements)
Initialize collection with Elements
|
static ElementsCollection |
$$(java.lang.String cssSelector)
Locates all elements matching given CSS selector.
|
static ElementsCollection |
$$(org.openqa.selenium.WebElement parent,
org.openqa.selenium.By seleniumSelector)
Deprecated.
please use $(parent).$$(By) which is the same
(method will not be removed until 4.x or later)
|
static ElementsCollection |
$$(org.openqa.selenium.WebElement parent,
java.lang.String cssSelector)
Deprecated.
please use $(parent).$$(String) which is the same
(method will not be removed until 4.x or later)
|
static ElementsCollection |
$$x(java.lang.String xpathExpression)
Locates all elements matching given XPATH expression.
|
static SelenideElement |
$x(java.lang.String xpathExpression)
Locates the first element matching given XPATH expression
ATTENTION! This method doesn't start any search yet!
|
static org.openqa.selenium.interactions.Actions |
actions()
With this method you can use Selenium Actions like described in the
AdvancedUserInteractions page.
|
static boolean |
atBottom()
Return true if bottom of the page is reached
Useful if you need to scroll down by x pixels unknown number of times.
|
static void |
back()
Navigate browser back to previous page
|
static void |
clearBrowserCookies()
Clear browser cookies.
|
static void |
clearBrowserLocalStorage()
Clear browser local storage.
|
static Clipboard |
clipboard()
Provide access to system clipboard, allows get and set String content.
|
static void |
close()
Deprecated.
Use either
closeWindow() or closeWebDriver() |
static void |
closeWebDriver()
Close the browser if it's open.
|
static void |
closeWindow()
Close the current window, quitting the browser if it's the last window currently open.
|
static java.lang.String |
confirm()
Accept (Click "Yes" or "Ok") in the confirmation dialog (javascript 'alert' or 'confirm').
|
static java.lang.String |
confirm(java.lang.String expectedDialogText)
Accept (Click "Yes" or "Ok") in the confirmation dialog (javascript 'alert' or 'confirm').
|
static java.lang.String |
dismiss()
Dismiss (click "No" or "Cancel") in the confirmation dialog (javascript 'alert' or 'confirm').
|
static java.lang.String |
dismiss(java.lang.String expectedDialogText)
Dismiss (click "No" or "Cancel") in the confirmation dialog (javascript 'alert' or 'confirm').
|
static java.io.File |
download(java.lang.String url)
NB! URL must be properly encoded.
|
static java.io.File |
download(java.lang.String url,
long timeoutMs)
Download file using a direct link.
|
static java.io.File |
download(java.net.URI url) |
static java.io.File |
download(java.net.URI url,
long timeoutMs) |
static SelenideElement |
element(org.openqa.selenium.By seleniumSelector)
Locates the first element matching given CSS selector
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
element(org.openqa.selenium.By seleniumSelector,
int index)
Locates the Nth element matching given criteria
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
element(java.lang.String cssSelector)
Locates the first element matching given CSS selector
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
element(java.lang.String cssSelector,
int index)
Locates the Nth element matching given criteria
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
element(org.openqa.selenium.WebElement webElement)
Wrap standard Selenium WebElement into SelenideElement
to use additional methods like shouldHave(), selectOption() etc.
|
static ElementsCollection |
elements(org.openqa.selenium.By seleniumSelector)
Locates all elements matching given CSS selector.
|
static ElementsCollection |
elements(java.util.Collection<? extends org.openqa.selenium.WebElement> elements)
Wrap standard Selenium WebElement collection into SelenideElement collection
to use additional methods like shouldHave() etc.
|
static ElementsCollection |
elements(java.lang.String cssSelector)
Locates all elements matching given CSS selector.
|
static <T> T |
executeAsyncJavaScript(java.lang.String jsCode,
java.lang.Object... arguments) |
static <T> T |
executeJavaScript(java.lang.String jsCode,
java.lang.Object... arguments) |
static void |
forward()
Navigate browser forward to next page
|
static SelenideElement |
getElement(org.openqa.selenium.By criteria)
Deprecated.
please use element(criteria) which is the same
(method will not be removed until 4.x or later)
Locates the first element matching given criteria
ATTENTION! This method doesn't start any search yet!
|
static SelenideElement |
getElement(org.openqa.selenium.By criteria,
int index)
Deprecated.
please use element(criteria, index) which is the same
(method will not be removed until 4.x or later)
Locates the Nth element matching given criteria
ATTENTION! This method doesn't start any search yet!
|
static ElementsCollection |
getElements(org.openqa.selenium.By criteria)
Deprecated.
please use elements(criteria) which is the same
(method will not be removed until 4.x or later)
Locates all elements matching given CSS selector
ATTENTION! This method doesn't start any search yet!
|
static org.openqa.selenium.WebElement |
getFocusedElement() |
static SelenideElement |
getSelectedRadio(org.openqa.selenium.By radioField)
Returns selected element in radio group
|
static java.lang.String |
getUserAgent()
Get current user agent from browser session
|
static java.util.List<java.lang.String> |
getWebDriverLogs(java.lang.String logType)
Same as com.codeborne.selenide.Selenide#getWebDriverLogs(java.lang.String, java.util.logging.Level)
|
static java.util.List<java.lang.String> |
getWebDriverLogs(java.lang.String logType,
java.util.logging.Level logLevel)
Getting and filtering of the WebDriver logs for specified LogType by specified logging level
For example to get WebDriver Browser's console output (including JS info, warnings, errors, etc. |
static LocalStorage |
localStorage()
Access browser's local storage.
|
static void |
open()
Open an empty browser (without opening any pages).
|
static void |
open(java.lang.String relativeOrAbsoluteUrl)
The main starting point in your tests.
|
static void |
open(java.lang.String relativeOrAbsoluteUrl,
AuthenticationType authenticationType,
Credentials credentials)
The main starting point in your tests.
|
static void |
open(java.lang.String relativeOrAbsoluteUrl,
AuthenticationType authenticationType,
java.lang.String login,
java.lang.String password)
The main starting point in your tests.
|
static <PageObjectClass> |
open(java.lang.String relativeOrAbsoluteUrl,
java.lang.Class<PageObjectClass> pageObjectClassClass)
Open a web page and create PageObject for it.
|
static void |
open(java.lang.String relativeOrAbsoluteUrl,
java.lang.String domain,
java.lang.String login,
java.lang.String password)
The main starting point in your tests.
|
static <PageObjectClass> |
open(java.lang.String relativeOrAbsoluteUrl,
java.lang.String domain,
java.lang.String login,
java.lang.String password,
java.lang.Class<PageObjectClass> pageObjectClassClass)
Open a web page using Basic Auth credentials and create PageObject for it.
|
static void |
open(java.net.URL absoluteUrl) |
static <PageObjectClass> |
open(java.net.URL absoluteUrl,
java.lang.Class<PageObjectClass> pageObjectClassClass)
Open a web page and create PageObject for it.
|
static void |
open(java.net.URL absoluteUrl,
java.lang.String domain,
java.lang.String login,
java.lang.String password) |
static <PageObjectClass> |
open(java.net.URL absoluteUrl,
java.lang.String domain,
java.lang.String login,
java.lang.String password,
java.lang.Class<PageObjectClass> pageObjectClassClass)
Open a web page using Basic Auth credentials and create PageObject for it.
|
static <PageObjectClass> |
page(java.lang.Class<PageObjectClass> pageObjectClass)
Create a Page Object instance
|
static <PageObjectClass,T extends PageObjectClass> |
page(T pageObject)
Initialize a given Page Object instance
|
static java.lang.String |
prompt()
Accept (Click "Yes" or "Ok") in the confirmation dialog (javascript 'prompt').
|
static java.lang.String |
prompt(java.lang.String inputText)
Accept (Click "Yes" or "Ok") in the confirmation dialog (javascript 'prompt').
|
static java.lang.String |
prompt(java.lang.String expectedDialogText,
java.lang.String inputText)
Accept (Click "Yes" or "Ok") in the confirmation dialog (javascript 'prompt').
|
static void |
refresh()
Reload current page
|
static <T> T |
screenshot(org.openqa.selenium.OutputType<T> outputType)
Take the screenshot of current page and return it.
|
static java.lang.String |
screenshot(java.lang.String fileName)
Take the screenshot of current page and save to file fileName.html and fileName.png
|
static SessionStorage |
sessionStorage()
Access browser's session storage.
|
static void |
sleep(long milliseconds)
Not recommended.
|
static SelenideTargetLocator |
switchTo()
Switch to window/tab/frame/parentFrame/innerFrame/alert.
|
static java.lang.String |
title() |
static void |
updateHash(java.lang.String hash)
Update the hash of the window location.
|
static void |
using(org.openqa.selenium.WebDriver webDriver,
java.lang.Runnable lambda) |
static SelenideWait |
Wait()
Create a org.openqa.selenium.support.ui.FluentWait instance with Selenide timeout/polling.
|
static void |
zoom(double factor)
Zoom current page (in or out).
|
public static void open(java.lang.String relativeOrAbsoluteUrl)
relativeOrAbsoluteUrl
- If not starting with "http://" or "https://" or "file://", it's considered to be relative URL.
In this case, it's prepended by baseUrlpublic static void open(java.net.URL absoluteUrl)
open(String)
public static void open(java.lang.String relativeOrAbsoluteUrl, java.lang.String domain, java.lang.String login, java.lang.String password)
Open a browser window with given URL and credentials for basic authentication
If browser window was already opened before, it will be reused.
Don't bother about closing the browser - it will be closed automatically when all your tests are done.
If not starting with "http://" or "https://" or "file://", it's considered to be relative URL.
In this case, it's prepended by baseUrl
public static void open(java.lang.String relativeOrAbsoluteUrl, AuthenticationType authenticationType, java.lang.String login, java.lang.String password)
Open browser and pass authentication using build-in proxy.
A common authenticationType is "Basic". See Web HTTP reference for other types.
This method can only work if - Configuration.fileDownload == Configuration.FileDownloadMode.PROXY;
AuthenticationType
public static void open(java.lang.String relativeOrAbsoluteUrl, AuthenticationType authenticationType, Credentials credentials)
Open browser and pass authentication using build-in proxy.
A common authenticationType is "Basic". See Web HTTP reference for other types.
This method can only work if - Configuration.fileDownload == Configuration.FileDownloadMode.PROXY;
AuthenticationType
,
Credentials
public static void open(java.net.URL absoluteUrl, java.lang.String domain, java.lang.String login, java.lang.String password)
open(URL, String, String, String)
public static void open()
public static void using(org.openqa.selenium.WebDriver webDriver, java.lang.Runnable lambda)
public static void updateHash(java.lang.String hash)
hash
- value for window.location.hash - Accept either "#hash" or "hash".@CheckReturnValue @Nonnull public static <PageObjectClass> PageObjectClass open(java.lang.String relativeOrAbsoluteUrl, java.lang.Class<PageObjectClass> pageObjectClassClass)
@CheckReturnValue @Nonnull public static <PageObjectClass> PageObjectClass open(java.net.URL absoluteUrl, java.lang.Class<PageObjectClass> pageObjectClassClass)
@CheckReturnValue @Nonnull public static <PageObjectClass> PageObjectClass open(java.lang.String relativeOrAbsoluteUrl, java.lang.String domain, java.lang.String login, java.lang.String password, java.lang.Class<PageObjectClass> pageObjectClassClass)
@CheckReturnValue @Nonnull public static <PageObjectClass> PageObjectClass open(java.net.URL absoluteUrl, java.lang.String domain, java.lang.String login, java.lang.String password, java.lang.Class<PageObjectClass> pageObjectClassClass)
public static void closeWindow()
WebDriver.close()
public static void closeWebDriver()
Close the browser if it's open.
NB! Method quits this driver, closing every associated window.
WebDriver.quit()
@Deprecated public static void close()
closeWindow()
or closeWebDriver()
public static void refresh()
public static void back()
public static void forward()
@CheckReturnValue @Nullable public static java.lang.String title()
public static void sleep(long milliseconds)
milliseconds
- Time to sleep in milliseconds@CheckReturnValue @Nullable public static java.lang.String screenshot(java.lang.String fileName)
fileName
- Name of file (without extension) to save HTML and PNG to@CheckReturnValue @Nullable public static <T> T screenshot(org.openqa.selenium.OutputType<T> outputType)
outputType
- type of the returned screenshot@CheckReturnValue @Nonnull public static SelenideElement $(org.openqa.selenium.WebElement webElement)
webElement
- standard Selenium WebElement@CheckReturnValue @Nonnull public static SelenideElement $(java.lang.String cssSelector)
cssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"@CheckReturnValue @Nonnull public static SelenideElement $x(java.lang.String xpathExpression)
xpathExpression
- any XPATH expression //*[@id='value'] //E[contains(@A, 'value')]@CheckReturnValue @Nonnull public static SelenideElement $(org.openqa.selenium.By seleniumSelector)
seleniumSelector
- any Selenium selector like By.id(), By.name() etc.@CheckReturnValue @Nonnull public static SelenideElement $(org.openqa.selenium.By seleniumSelector, int index)
getElement(By, int)
@Deprecated @Nonnull public static SelenideElement $(org.openqa.selenium.WebElement parent, java.lang.String cssSelector)
parent
- the WebElement to search elements incssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"Locates the first element matching given CSS selector
ATTENTION! This method doesn't start any search yet!
@CheckReturnValue @Nonnull public static SelenideElement $(java.lang.String cssSelector, int index)
cssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"index
- 0..N@Deprecated @CheckReturnValue @Nonnull public static SelenideElement $(org.openqa.selenium.WebElement parent, java.lang.String cssSelector, int index)
parent
- the WebElement to search elements incssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"index
- 0..NLocates the Nth element matching given criteria
ATTENTION! This method doesn't start any search yet!
@Deprecated @CheckReturnValue @Nonnull public static SelenideElement $(org.openqa.selenium.WebElement parent, org.openqa.selenium.By seleniumSelector)
parent
- the WebElement to search elements inseleniumSelector
- any Selenium selector like By.id(), By.name() etc.Locates the first element matching given criteria
ATTENTION! This method doesn't start any search yet!
@Deprecated @CheckReturnValue @Nonnull public static SelenideElement $(org.openqa.selenium.WebElement parent, org.openqa.selenium.By seleniumSelector, int index)
parent
- the WebElement to search elements inseleniumSelector
- any Selenium selector like By.id(), By.name() etc.index
- 0..NLocates the Nth element matching given criteria
ATTENTION! This method doesn't start any search yet!
@CheckReturnValue @Nonnull public static ElementsCollection $$(java.util.Collection<? extends org.openqa.selenium.WebElement> elements)
@CheckReturnValue @Nonnull public static ElementsCollection $$(java.lang.String cssSelector)
cssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"@CheckReturnValue @Nonnull public static ElementsCollection $$x(java.lang.String xpathExpression)
xpathExpression
- any XPATH expression //*[@id='value'] //E[contains(@A, 'value')]@CheckReturnValue @Nonnull public static ElementsCollection $$(org.openqa.selenium.By seleniumSelector)
seleniumSelector
- any Selenium selector like By.id(), By.name() etc.@Deprecated @CheckReturnValue @Nonnull public static ElementsCollection $$(org.openqa.selenium.WebElement parent, java.lang.String cssSelector)
parent
- the WebElement to search elements incssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"Locates all elements matching given CSS selector inside given parent element
ATTENTION! This method doesn't start any search yet!
Methods returns an ElementsCollection which is a list of WebElement objects that can be iterated,
and at the same time is implementation of WebElement interface,
meaning that you can call methods .sendKeys(), click() etc. on it.
@Deprecated @CheckReturnValue @Nonnull public static ElementsCollection $$(org.openqa.selenium.WebElement parent, org.openqa.selenium.By seleniumSelector)
@CheckReturnValue @Nonnull public static SelenideElement element(org.openqa.selenium.WebElement webElement)
webElement
- standard Selenium WebElement@CheckReturnValue @Nonnull public static SelenideElement element(java.lang.String cssSelector)
cssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"@CheckReturnValue @Nonnull public static SelenideElement element(org.openqa.selenium.By seleniumSelector)
seleniumSelector
- any Selenium selector like By.id(), By.name() etc.@CheckReturnValue @Nonnull public static SelenideElement element(org.openqa.selenium.By seleniumSelector, int index)
seleniumSelector
- any Selenium selector like By.id(), By.name() etc.index
- 0..N@CheckReturnValue @Nonnull public static SelenideElement element(java.lang.String cssSelector, int index)
cssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"index
- 0..N@CheckReturnValue @Nonnull public static ElementsCollection elements(java.util.Collection<? extends org.openqa.selenium.WebElement> elements)
elements
- standard Selenium WebElement collection@CheckReturnValue @Nonnull public static ElementsCollection elements(java.lang.String cssSelector)
cssSelector
- any CSS selector like "input[name='first_name']" or "#messages .new_message"@CheckReturnValue @Nonnull public static ElementsCollection elements(org.openqa.selenium.By seleniumSelector)
seleniumSelector
- any Selenium selector like By.id(), By.name() etc.@Deprecated @CheckReturnValue @Nonnull public static SelenideElement getElement(org.openqa.selenium.By criteria)
criteria
- instance of By: By.id(), By.className() etc.@Deprecated @CheckReturnValue @Nonnull public static SelenideElement getElement(org.openqa.selenium.By criteria, int index)
criteria
- instance of By: By.id(), By.className() etc.index
- 0..N@Deprecated @CheckReturnValue @Nonnull public static ElementsCollection getElements(org.openqa.selenium.By criteria)
criteria
- instance of By: By.id(), By.className() etc.@Nullable public static <T> T executeJavaScript(java.lang.String jsCode, java.lang.Object... arguments)
JavascriptExecutor.executeScript(java.lang.String, java.lang.Object...)
@Nullable public static <T> T executeAsyncJavaScript(java.lang.String jsCode, java.lang.Object... arguments)
JavascriptExecutor.executeAsyncScript(java.lang.String, java.lang.Object...)
@CheckReturnValue @Nullable public static SelenideElement getSelectedRadio(org.openqa.selenium.By radioField)
@Nullable public static java.lang.String confirm()
@Nullable public static java.lang.String confirm(@Nullable java.lang.String expectedDialogText)
expectedDialogText
- if not null, check that confirmation dialog displays this message (case-sensitive)DialogTextMismatch
- if confirmation message differs from expected message@Nullable public static java.lang.String prompt()
@Nullable public static java.lang.String prompt(@Nullable java.lang.String inputText)
inputText
- if not null, sets value in prompt dialog input@Nullable public static java.lang.String prompt(@Nullable java.lang.String expectedDialogText, @Nullable java.lang.String inputText)
expectedDialogText
- if not null, check that confirmation dialog displays this message (case-sensitive)inputText
- if not null, sets value in prompt dialog inputDialogTextMismatch
- if confirmation message differs from expected message@Nullable public static java.lang.String dismiss()
@Nullable public static java.lang.String dismiss(@Nullable java.lang.String expectedDialogText)
expectedDialogText
- if not null, check that confirmation dialog displays this message (case-sensitive)DialogTextMismatch
- if confirmation message differs from expected message@Nonnull @CheckReturnValue public static SelenideTargetLocator switchTo()
@CheckReturnValue @Nullable public static org.openqa.selenium.WebElement getFocusedElement()
@CheckReturnValue @Nonnull public static <PageObjectClass> PageObjectClass page(java.lang.Class<PageObjectClass> pageObjectClass)
@CheckReturnValue @Nonnull public static <PageObjectClass,T extends PageObjectClass> PageObjectClass page(T pageObject)
@CheckReturnValue @Nonnull public static SelenideWait Wait()
Wait().until(invisibilityOfElementLocated(By.id("magic-id")));
@CheckReturnValue @Nonnull public static org.openqa.selenium.interactions.Actions actions()
actions() .sendKeys($(By.name("rememberMe")), "John") .click($(#rememberMe")) .click($(byText("Login"))) .build() .perform();
public static void zoom(double factor)
factor
- e.g. 1.1 or 2.0 or 0.5@CheckReturnValue @Nonnull public static java.util.List<java.lang.String> getWebDriverLogs(java.lang.String logType)
@Nonnull @CheckReturnValue public static java.util.List<java.lang.String> getWebDriverLogs(java.lang.String logType, java.util.logging.Level logLevel)
for(String logEntry : getWebDriverLogs(LogType.BROWSER, Level.ALL)) {
Reporter.log(logEntry + "<br>");
}
logType
- WebDriver supported log typeslogLevel
- logging level that will be used to control logging outputLogType
,
Level
public static void clearBrowserCookies()
public static void clearBrowserLocalStorage()
@Nonnull @CheckReturnValue public static java.lang.String getUserAgent()
@CheckReturnValue public static boolean atBottom()
@Nonnull @CheckReturnValue public static java.io.File download(java.lang.String url) throws java.io.IOException, java.net.URISyntaxException
java.io.IOException
java.net.URISyntaxException
Download fails if default timeout (Configuration.timeout) is exceeded
@Nonnull @CheckReturnValue public static java.io.File download(java.net.URI url) throws java.io.IOException
java.io.IOException
download(String)
@Nonnull @CheckReturnValue public static java.io.File download(java.net.URI url, long timeoutMs) throws java.io.IOException
java.io.IOException
download(String, long)
@Nonnull @CheckReturnValue public static java.io.File download(java.lang.String url, long timeoutMs) throws java.io.IOException, java.net.URISyntaxException
url
- either relative or absolute url
NB! URL must be properly encoded.
E.g. instead of "/files/ж.txt", it should be "/files/%D0%B6.txt"timeoutMs
- specific timeout in msjava.io.IOException
- if failed to download filejava.net.URISyntaxException
- if given url has invalid syntax@Nonnull @CheckReturnValue public static LocalStorage localStorage()
@Nonnull @CheckReturnValue public static SessionStorage sessionStorage()
@Nonnull @CheckReturnValue public static Clipboard clipboard()
Toolkit
and supports only local runs.
Remote runs support can be implemented via plugins.
Plugin for Selenoid will be released soon.
Pay attention that Clipboard is shared resource for instance where tests runs
and keep in mind while developing test suite with multiple tests for clipboard.