...
- Update Alerts: Use
Accept Script Dialog
to replaceAssertalert
. - Update Confirms: Depending on whether the user action is to click OK or Cancel in the dialog, use
Accept Script Dialog
orDismiss Script Dialog
to replaceAssertconfirmation
.Choosecancelonnextconfirmation
has been removed and is no longer necessary. - Update Prompts: Depending on whether the user action is to click OK or Cancel in the dialog, use
Accept Script Dialog
orDismiss Script Dialog
to replaceAssertprompt
andAnsweronnextprompt
user actions. - Update Attached/Actions: Any Browser Validation tools attached to an action triggering the alert (e.g., Click ‘alert’) should be attached to the
Accept Script Dialog
orDismiss Script Dialog
action following the action that triggers the alert.
A Browser Validation tool attached to an alert-triggering action may not work correctly on Safari because Wait for Script Dialog settings cannot be applied. In this case, move the Browser Validation tool to the next action.
Known Selenium Bugs and Issues
- Chrome 28+ and Selenium's chromedriver is not compatible with RHEL/!CentOS 6.x. CentOS 7.0 (64-bit) works—although there is a warning reported. This warning can be disabled from the command line with
setsebool -P unconfined_chrome_sandbox_transition 0
- Selenium WebDriver randomly fails to accept the script dialogs. This occurs when a test tries to open a dialog and the "Wait for Script Dialog" is reporting error that script dialog does not exist during the specified timeout (by default 10 seconds). The issue can be solved by increasing the wait time. See https://groups.google.com/forum/#!topic/selenium-developer-activity/It-RyMNBrpw for details.
- In Chrome, Selenium cannot interact with onBeforeUnload dialogs that open due to a Navigate, Go Back, or Go Forward action. See https://code.google.com/p/chromedriver/issues/detail?id=29 for details.
- In Chrome and Internet Explorer, Selenium cannot interact with onBeforeUnload dialogs that open when calling "Close" on the only browser window.
- Chrome: See https://code.google.com/p/chromedriver/issues/detail?id=901 for details.
- Internet Explorer: See https://code.google.com/p/selenium/issues/detail?id=7895 for details.
- Selenium WebDriver fails to accept an alert that is opened on a new window. See https://code.google.com/p/selenium/issues/detail?id=7807 for details.
- Modal dialogs (those opened using the JavaScript function "showModalDialog") are not supported for Chrome or Safari. Web applications that rely on this functionality should use Internet Explorer or Firefox.
- For the "click" user action, key modifiers ("Shift," "Ctrl," and "Alt") are supported only in Chrome due to an issue in Selenium WebDriver. See https://code.google.com/p/selenium/issues/detail?id=4385 for details.
- When multiple windows are opened by one user action, the Selenium WebDriver can return a wrong order of window handlers for Chrome and Internet Explorer. This can happen only in the case of unnamed windows. The workaround is to use named windows.
- Cannot click on area elements in Safari or Internet Explorer. See https://code.google.com/p/selenium/issues/detail?id=2354 for details.
- In Internet Explorer, if an application overrides the default "fireEvent" implementation on an element with a new implementation, Selenium will trigger the new implementation when performing actions on that element. This differs from default browser behavior, where the default "fireEvent" implementation is called even when the "fireEvent" method is changed by a web application.
- Selenium does not support playing back scenarios in headless mode. If headless mode is selected, the scenarios will still play back in visible mode.
Safari-specific Issues
- The following commands are not supported in Safari. See https://code.google.com/p/selenium/issues/detail?id=4136 for details.
- DoubleClick
- Dragdrop
- Go Back
- Go Forward
- Hover
- Keydown
- Keyup
- Right-click
- The following SOAtest functionality is not supported:
- Traffic is not recorded when playing back scenarios.
- NTLM/Digest/Basic authentication is not supported.
- Configure and Validate for Load Test are not supported.
- Attaching tools to HTTP traffic is not supported.
- The "Wait for Interval without Traffic" wait condition will always succeed after the configured interval has elapsed, regardless of whether traffic is being sent by the browser or server.
- Sites that use untrusted certificates are not supported.
- For Safari 7+, the SafariDriver does not automatically install the browser extension on each run because keychain authorization is required to install extensions. The workaround is to manually install the extension. See https://code.google.com/p/selenium/issues/detail?id=8514 details.
- For Safari 7.10 (released mid-September 2014), it’s necessary to go into Safari preferences and enable the WebDriver plugin. See https://code.google.com/p/selenium/issues/detail?id=7933 for details.
- For Safari, wait for page load timeout is supported only for navigation action. The WebDriver pageloadTimeout for Safari is not supported. See the following articles for details:
- Alerts in Safari are always suppressed and are not reported as exceptions (users will never get 'unexpected script dialog'). Existing Accept Script Dialog/Dismiss Script Dialog and Type into Script Dialog tools will always succeed. The choice of Accept or Dismiss Script Dialog will have the intended effect on confirm dialogs and Type into Script Dialog will have its intended effect on prompt dialogs; however these dialogs are suppressed from view.
- Setting the value of file inputs is not supported. See https://code.google.com/p/selenium/issues/detail?id=4220 for details.
- If you focus on a text input element (using JavaScript), change its value, then focus on another element, the "change" event is not fired.
- Windows opened with window.open() will fail to open when playing back a scenario in Safari if “Block pop-up windows” is enabled. You can disable "Block pop-up windows" to work around this issue. See https://code.google.com/p/selenium/issues/detail?id=3693 for details.
- If Safari is set to request the same URI with a fragment, it will cause WebDriver to hang. See https://code.google.com/p/selenium/issues/detail?id=7176 for details.
- Rich text editors are not supported. See https://code.google.com/p/selenium/issues/detail?id=4467 for details.
- When calling switchTo().window(), the Safari browser will actually switch to the window in the GUI, which may be disorienting.
Manually Upgrading to a New Version of Selenium WebDriver
You can upgrade SOAtest’s Selenium WebDriver version before it is available in a new SOAtest release. Changing to a different version of Selenium WebDriver from the version shipped with SOAtest is not officially supported or tested by Parasoft. As a result, you may encounter incompatibilities when running the newer version of Selenium WebDriver.
To upgrade, you need to:
- Upgrade the Selenium client, which also upgrades WebDriver support for Firefox playback. This step is required, regardless of the browser(s) you want WebDriver to use for playback. For details, see Upgrading Selenium Client Libraries (Includes Updating WebDriver Support for Firefox).
- Upgrade WebDriver’s playback support for the desired browser(s)—Chrome, Internet Explorer, and/or Safari. See the following sections:
Manually Upgrading to a New Version of Selenium WebDriver
You can upgrade SOAtest’s Selenium WebDriver version before it is available in a new SOAtest release. Changing to a different version of Selenium WebDriver from the version shipped with SOAtest is not officially supported or tested by Parasoft. As a result, you may encounter incompatibilities when running the newer version of Selenium WebDriver.
To upgrade, you need to:
- Upgrade the Selenium client, which also upgrades WebDriver support for Firefox playback. This step is required, regardless of the browser(s) you want WebDriver to use for playback. For details, see Upgrading Selenium Client Libraries (Includes Updating WebDriver Support for Firefox).
- Upgrade WebDriver’s playback support for the desired browser(s)—Chrome and/or Internet Explorer. See the following sections:
Table of Content Zone | ||||||
---|---|---|---|---|---|---|
| ||||||
Upgrading Selenium Client Libraries (Includes Updating WebDriver Support for Firefox)The following is always the first step for updating Selenium WebDriver—no matter what browser you want it to use for playback. WebDriver support for Firefox will be upgraded as part of this process.
After you have completed the above steps, you can confirm that Selenium WebDriver for Firefox was upgraded by going to the Firefox Add-Ons page and checking the version number. Upgrading WebDriver Support for Chrome (ChromeDriver)To upgrade WebDriver’s support for Chrome, update ChromeDriver as follows:
Upgrading WebDriver Support for Internet Explorer (InternetExplorerDriver)The Selenium WebDriver engine uses the 32-bit version of Internet Explorer. Any custom Internet Explorer Executable Path settings (e.g., from Preferences> Browser> IE Executable Path) will not be applied.
SOAtest will now use the newer version of InternetExplorerDriver for playback | ||||||
Table of Content Zone | ||||||
| ||||||
Upgrading Selenium Client Libraries (Includes Updating WebDriver Support for Firefox)The following is always the first step for updating Selenium WebDriver—no matter what browser you want it to use for playback. WebDriver support for Firefox will be upgraded as part of this process.
After you have completed the above steps, you can confirm that Selenium WebDriver for Firefox was upgraded by going to the Firefox Add-Ons page and checking the version number. Upgrading WebDriver Support for Chrome (ChromeDriver)To upgrade WebDriver’s support for Chrome, update ChromeDriver as follows:
Upgrading WebDriver Support for Internet Explorer (InternetExplorerDriver)The Selenium WebDriver engine uses the 32-bit version of Internet Explorer. Any custom Internet Explorer Executable Path settings (e.g., from Preferences> Browser> IE Executable Path) will not be applied.
SOAtest will now use the newer version of InternetExplorerDriver for playback. Upgrading WebDriver Support for Safari (SafariDriver)Selenium's SafariDriver is deprecated in Safari 10 and later. Update to the latest version of Safari and use Apple's SafariDriver. If you cannot upgrade Safari, you can download and install the latest Safari WebDriver Extension as follows: SafariDriver.safariextz. Click on the downloaded file to install the Safari WebDriver extension . Upgrading WebDriver Support for Microsoft Edge (EdgeDriver)
|
...