... | @@ -2,80 +2,141 @@ |
... | @@ -2,80 +2,141 @@ |
|
|
|
|
|
## Overview
|
|
## Overview
|
|
|
|
|
|
The combination of Selenium 1 and 2 APIs provides the following support:
|
|
The combination of Selenium 1 and Webdriver APIs should provide the testing
|
|
|
|
support below. See the next sections for details specific to each browser and
|
|
|
|
possible limitations.
|
|
|
|
|
|
* Jax output set to:
|
|
* MathJax outputs:
|
|
* HTML-CSS with availableFonts set to STIX, TeX or ImageTeX fonts.
|
|
* HTML-CSS using STIX, TeX or ImageTeX fonts.
|
|
* NativeMML, including the case of MSIE + MathPlayer.
|
|
* NativeMML, including the case of MSIE + MathPlayer.
|
|
* SVG
|
|
* SVG using TeX fonts.
|
|
* Firefox ; Linux/Windows
|
|
|
|
* Safari ; Windows
|
|
* Selenium Drivers:
|
|
* Chrome ; Linux/Windows
|
|
* Firefox on Linux/Windows/Mac.
|
|
* Internet Explorer (Windows) ; modes Quirks, IE7, IE8, IE9
|
|
* Opera on Linux/Windows/Mac.
|
|
* <del>Konqueror (Linux)</del>
|
|
* Chrome on Linux/Windows/Mac.
|
|
* Opera ; Linux/Windows. works with restriction.
|
|
* Internet Explorer on Windows in document modes Quirks, IE7, IE8, IE9.
|
|
* Firefox, Safari, Chrome and Opera ; Mac: not tested yet.
|
|
* Safari on Windows ; Mac not tested yet.
|
|
* iPhone (Mac): not tested yet.
|
|
* <del>Konqueror on Linux</del>.
|
|
* HTMLUnit ; Linux/Windows ; Mac: not tested yet. works for non visual tests.
|
|
* Android.
|
|
* Android (Linux): works with restriction.
|
|
* iOS ; not tested yet.
|
|
|
|
* HTMLUnit on Linux/Windows/Mac.
|
|
|
|
|
|
## Firefox
|
|
## Firefox
|
|
|
|
|
|
Automated testing works for Firefox with Linux and Windows and Mac, using both Selenium 1 and (preferably) Webdriver.
|
|
Automated testing works with Firefox on Linux, Windows and Mac using Webdriver.
|
|
|
|
|
|
## Safari
|
|
It is currently the fastest driver, the most convenient to use and it requires
|
|
Automated testing works for Safari on Windows, using Selenium 1. Webdriver does not provide a driver for Safari. See [http://code.google.com/p/selenium/issues/detail?id=599](http://code.google.com/p/selenium/issues/detail?id=599)
|
|
no specific configurations or workarounds.
|
|
|
|
|
|
|
|
For details, see [http://code.google.com/p/selenium/wiki/FirefoxDriver](http://code.google.com/p/selenium/wiki/FirefoxDriver).
|
|
|
|
|
|
|
|
## Opera
|
|
|
|
|
|
|
|
Automated testing works with Opera on Linux, Windows and Mac using Webdriver.
|
|
|
|
|
|
|
|
Note that MathJax support for STIX fonts is disabled for that browser, so you
|
|
|
|
can only use TeX fonts. On Windows, use Opera >= 11.60 to avoid issues with the
|
|
|
|
program files directory being unwritable. Otherwise it is one of the fastest
|
|
|
|
driver and one of the most convenient to use.
|
|
|
|
|
|
|
|
For details, see [http://code.google.com/p/selenium/wiki/OperaDriver](http://code.google.com/p/selenium/wiki/OperaDriver)
|
|
|
|
and [https://github.com/operasoftware/operadriver#readme](https://github.com/operasoftware/operadriver#readme).
|
|
|
|
|
|
## Chrome
|
|
## Chrome
|
|
|
|
|
|
Automated testing for Chrome works on Linux and Windows, using Selenium 1 and Webdriver. However, the Chrome driver on Linux has a serious limitation at the moment: it is not possible to take screenshots ([http://code.google.com/p/chromium/issues/detail?id=89777#c4](http://code.google.com/p/chromium/issues/detail?id=89777#c4)). Hence it is recommended to use Selenium 1 when you execute a set of tests that includes visual reftests and the faster Webdriver API otherwise.
|
|
Automated testing works with Chrome on Linux, Windows and Mac, using Webdriver.
|
|
|
|
|
|
|
|
However, the Chrome driver on Linux has a serious limitation at the moment:
|
|
|
|
[it is not possible to take screenshots](http://code.google.com/p/chromium/issues/detail?id=89777#c4).
|
|
|
|
Hence, when you execute a set of tests that includes visual reftests, you must
|
|
|
|
use the Selenium 1 API instead, which seems two to three times slower that the
|
|
|
|
Webdriver API. Otherwise, the speed should be comparable to Firefox or Opera.
|
|
|
|
|
|
To use Webdriver, a ChromeDriver server should be installed on the test machine. See
|
|
An additional configuration is required to use the Webdriver API: you must
|
|
[http://code.google.com/p/chromium/downloads/list](http://code.google.com/p/chromium/downloads/list)
|
|
install the [ChromeDriver server](http://code.google.com/p/chromium/downloads/list)
|
|
|
|
on each test machine.
|
|
|
|
|
|
|
|
For details, see [http://code.google.com/p/selenium/wiki/ChromeDriver](http://code.google.com/p/selenium/wiki/ChromeDriver).
|
|
|
|
|
|
## Internet Explorer
|
|
## Internet Explorer
|
|
|
|
|
|
Automated testing works for Internet Explorer using Selenium 1 and Webdriver. However, selection of Internet Explorer's compatibility mode is not implemented yet when Webdriver is used (default mode is Quirks). See [http://code.google.com/p/selenium/issues/detail?id=2564](http://code.google.com/p/selenium/issues/detail?id=2564)
|
|
Automated testing works with Internet Explorer on Windows, using Webdriver.
|
|
|
|
|
|
|
|
However it does not have all the benefits of other drivers. For example, the
|
|
|
|
selection of the document mode is currently implemented using the Selenium 1
|
|
|
|
API and Java keyboard events. This is not really reliable but is the best we
|
|
|
|
can do until
|
|
|
|
[issue 2564](http://code.google.com/p/selenium/issues/detail?id=2564)
|
|
|
|
is fixed. Also this driver is a bit slower and only one instance at once can be
|
|
|
|
executed on a given machine.
|
|
|
|
|
|
IE9 with Selenium 1 is very slow and timeout happens too often!
|
|
To use Webdriver, you may need to do some
|
|
|
|
[specific configurations](http://code.google.com/p/selenium/wiki/InternetExplorerDriver#Required_Configuration).
|
|
|
|
|
|
To use Webdriver, you should follow the instructions in "Required Configuration":
|
|
For details, see [http://code.google.com/p/selenium/wiki/InternetExplorerDriver](http://code.google.com/p/selenium/wiki/InternetExplorerDriver).
|
|
[http://code.google.com/p/selenium/wiki/InternetExplorerDriver](http://code.google.com/p/selenium/wiki/InternetExplorerDriver)
|
|
|
|
|
|
|
|
On IE 7 or higher on Windows Vista or Windows 7, you must set the Protected Mode settings for each zone to be the same value. The value can be on or off, as long as it is the same for every zone. To set the Protected Mode settings, choose "Internet Options..." from the Tools menu, and click on the Security tab. For each zone, there will be a check box at the bottom of the tab labeled "Enable Protected Mode".
|
|
## Safari
|
|
|
|
|
|
Unlike other WebDriver classes, there should only ever be a single InternetExplorerDriver instance at once on a given machine.
|
|
Automated testing works with Safari on Windows, using Selenium 1. I got a proxy
|
|
|
|
issue on the DSI machine that prevented to test it on Mac, so I can't say
|
|
|
|
anything in that case.
|
|
|
|
|
|
## Konqueror
|
|
However Selenium 1 is slow.
|
|
|
|
An [experimental driver](http://code.google.com/p/selenium/wiki/SafariDriver)
|
|
|
|
exists but seems to have strong inconveniences like the need to
|
|
|
|
register to Apple's developer program to generate a signature for the
|
|
|
|
driver extension. Apparently, a Mac platform is needed to do so. I have not
|
|
|
|
tested this driver yet.
|
|
|
|
|
|
<del>Automated testing works for Konqueror on Linux, using Selenium 1</del>. Webdriver does not provide a driver for Konqueror.
|
|
Note that MathJax support for STIX fonts is disabled for that browser, so you
|
|
|
|
can only use TeX fonts.
|
|
|
|
|
|
**It fails with the latest Selenium version, last time I tried!**
|
|
For details, see [http://code.google.com/p/selenium/wiki/SafariDriver](http://code.google.com/p/selenium/wiki/SafariDriver)
|
|
|
|
|
|
## Opera
|
|
## Konqueror
|
|
|
|
|
|
|
|
Automated testing may work with Konqueror on Linux, using Selenium 1. However
|
|
|
|
this support seems broken with recent versions of Selenium. Also, Webdriver does
|
|
|
|
not provide a driver for Konqueror.
|
|
|
|
|
|
Automated testing works for Opera on Linux/Windows, using Webdriver. (I was also able to make Selenium 1 work with Opera, but it is better to use the Webdriver interface).
|
|
## Android
|
|
|
|
|
|
Note that MathJax support for STIX fonts is disabled with Opera, so it's preferable to use TeX fonts for testing.
|
|
Automated testing works with Android, using Webdriver. I have only tested it
|
|
|
|
using an emulator on Linux, not a real Device.
|
|
|
|
|
|
On Windows Vista and 7 the program files directory is not writable. If you run Opera 11.5x from this location you will get an error beginning "Opera has failed to access or upgrade your profile". To solve that issue, you have to install Opera in a custom location and set the OPERA_PATH accordingly. See [https://github.com/operasoftware/operadriver#readme](https://github.com/operasoftware/operadriver#readme)
|
|
The documentation says to setup port forwarding to make the android server
|
|
|
|
available at http://localhost:8080/wd/hub. However, this address seems to be
|
|
|
|
only reachable from the machine on which the emulator is running. Consequently,
|
|
|
|
I've only been able to make it work when the test runner and Android emulator
|
|
|
|
are on the same machine.
|
|
|
|
|
|
## iPhone
|
|
Similarly, the address http://localhost/ does not seem reachable from the
|
|
|
|
emulator, so I've used http://devel.mathjax.org instead to get the test suite
|
|
|
|
pages and MathJax scripts.
|
|
|
|
|
|
Automated testing for iPhone would require a Mac (and Webdriver) and thus I have not tested it yet.
|
|
Obviously, the screen resolution is lower on a mobile, so that may be
|
|
See [http://code.google.com/p/selenium/wiki/IPhoneDriver](http://code.google.com/p/selenium/wiki/IPhoneDriver)
|
|
problematic for some visual reftests. Android can however be used with larger
|
|
|
|
resolutions.
|
|
|
|
|
|
## HTMLUnit
|
|
For details, see [http://code.google.com/p/selenium/wiki/AndroidDriver](http://code.google.com/p/selenium/wiki/AndroidDriver)
|
|
|
|
|
|
HTMLUnit is a GUI-less browser which uses the Rhino JavaScript engine. Automated testing works for it on Linux/Windows using Webdriver. Obviously, visual reftest are not relevant for this configuration and thus are skipped.
|
|
## iOS
|
|
|
|
|
|
## Android
|
|
Automated testing may work with iOS, using Webdriver. It seems to require a Mac
|
|
|
|
and possibly a iOS device. I have not tested it yet.
|
|
|
|
|
|
Automated testing works for Android (on Linux), using Webdriver. I have only tested it using the emulator (not real Device).
|
|
For details, see [http://code.google.com/p/selenium/wiki/IPhoneDriver](http://code.google.com/p/selenium/wiki/IPhoneDriver)
|
|
See [http://code.google.com/p/selenium/wiki/AndroidDriver](http://code.google.com/p/selenium/wiki/AndroidDriver)
|
|
|
|
|
|
## HTMLUnit
|
|
|
|
|
|
The documentation says to setup port forwarding to make the android server available at http://localhost:8080/wd/hub. However, this address seems to be only reachable from the machine on which the emulator is running. Consequently, I've only be able to make it work when the test runner and Android emulator are on the same machine.
|
|
Automated testing works on Linux/Windows/Mac using Webdriver.
|
|
|
|
|
|
Similarly, the address http://localhost/ does not seem reachable from the emulator, so I've used http://devel.mathjax.org instead to get the test suite pages and MathJax scripts.
|
|
HTMLUnit is a GUI-less browser which uses the Rhino JavaScript engine. The
|
|
|
|
Selenium documentation recommends it for fast testing. Obviously, visual
|
|
|
|
reftest are not relevant for this configuration and thus are skipped. MathJax
|
|
|
|
also uses features specific to real browsers and so even non-visual tests may
|
|
|
|
fail or be irrelevant. Hence this driver does not seem really useful for our
|
|
|
|
purpose.
|
|
|
|
|
|
Obviously, the screen resolution is lower on a mobile, so that may be problematic for some visual reftests. |
|
For details, see [http://code.google.com/p/selenium/wiki/HtmlUnitDriver](http://code.google.com/p/selenium/wiki/HtmlUnitDriver) |
|
\ No newline at end of file |
|
\ No newline at end of file |