https://github.com/vmi/selenese-runner-java
Selenium IDE native format (selenese and side) interpreter.
https://github.com/vmi/selenese-runner-java
selenium selenium-ide webdriver
Last synced: about 2 months ago
JSON representation
Selenium IDE native format (selenese and side) interpreter.
- Host: GitHub
- URL: https://github.com/vmi/selenese-runner-java
- Owner: vmi
- License: other
- Created: 2012-07-16T09:53:49.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-12-03T15:29:44.000Z (over 1 year ago)
- Last Synced: 2024-11-15T03:59:45.702Z (5 months ago)
- Topics: selenium, selenium-ide, webdriver
- Language: Java
- Homepage:
- Size: 3.43 MB
- Stars: 140
- Watchers: 26
- Forks: 83
- Open Issues: 59
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - Selenese Runner Java
README
Selenese Runner Java
====================This is selenese script interpreter implemented by Java.
It supports test-case and test-suite which are Selenium IDE's native format (selenese and side).
Note: Supported Java version is 8 or later.
[](https://travis-ci.org/vmi/selenese-runner-java)
Download
--------You can download the executable jar from:
https://github.com/vmi/selenese-runner-java/releases
Release Note
------------### 4.3.0
* Catch up Selenium 4.8.1 and update dependency versions.
* Fix several problems associated with the update.
* Remove dependency on `xalan` for security reason. (#337)
* Run multiple test files in parallel. (PR #340)
* Add new option `--parallel` to parallel execution.Please check [RELEASENOTE.md](RELEASENOTE.md).
Features
--------* Run test-case and test-suite generated by Selenium IDE from command line.
* Supported format:
* selsenese (old format)
* side (new format. see https://github.com/SeleniumHQ/selenium-ide )
* Support commands of Selenium IDE: Flow Control.
https://github.com/davehunt/selenium-ide-flowcontrol
* Log URL/title/Cookies at all commands.
* Take screenshots at all commands. (optional)
* Override base URL.
* Override directory of screenshot path.
* Generate JUnit XML result.
* Generate HTML result.Usage
-----java -jar selenese-runner.jar ... ...
--config (-c) : load option information from file.
--driver (-d) : firefox (default) | chrome | ie | edge | safari | htmlunit | remote | appium | FQCN-of-WebDriverFactory
--headless : use headless mode if driver is supported (currently, Chrome and Firefox)
--parallel : run multiple test files in parallel (if set to "max", all files are executed in parallel at once)
--profile (-p) : profile name (Firefox only *1)
--profile-dir (-P) : profile directory (Firefox only *1)
--chrome-experimental-options : path to json file specify experimental options for chrome (Chrome only *1)
--chrome-extension : chrome extension file (multiple, Chrome only *1)
--proxy-type : proxy type (manual (default if set --proxy) | pac | autodetect | system)
--proxy : [manual] proxy host and port (HOST:PORT) (excepting IE) / [pac] PAC URL
--proxy-user : proxy username (HtmlUnit only *2)
--proxy-password : proxy password (HtmlUnit only *2)
--no-proxy : no-proxy hosts
--cli-args : add command line arguments at starting up driver (multiple)
--remote-url : Remote test runner URL (Remote only)
--remote-platform : Desired remote platform (Remote only)
--remote-browser : Desired remote browser (Remote only)
--remote-version : Desired remote browser version (Remote only)
--highlight (-H) : highlight locator always.
--interactive (-i) : interactive mode.
--screenshot-dir (-s) : override captureEntirePageScreenshot directory.
--screenshot-all (-S) : take screenshot at all commands to specified directory.
--screenshot-on-fail : take screenshot on fail commands to specified directory.
--screenshot-scroll-timeout : set scroll timeout (ms) for taking screenshot. (default: 100)
--ignore-screenshot-command : ignore captureEntirePageScreenshot command.
--baseurl (-b) : override base URL set in selenese.
--firefox : path to 'firefox' binary. (implies '--driver firefox')
--geckodriver : path to 'geckodriver' binary. (implies '--driver firefox')
--chromedriver : path to 'chromedriver' binary. (implies '--driver chrome')
--iedriver : path to 'IEDriverServer' binary. (implies '--driver ie')
--edgedriver : path to Edge 'WebDriver' binary. (implies '--driver edge')
--xml-result : output XML JUnit results to specified directory.
--html-result : output HTML results to specified directory.
--timeout (-t) : set timeout (ms) for waiting. (default: 30000 ms)
--max-retries : set maximum number of retries for a given step. (default: 0)
--set-speed : same as executing setSpeed(ms) command first.
--height : set initial height. (excluding mobile)
--width : set initial width. (excluding mobile)
--alerts-policy VAL : The default behaviour for unexpected alerts (accept/dismiss/accept_and_notify/dismiss_and_notify/ignore)
--define (-D) [:][+]= : define parameters for capabilities. is a value type: str (default), int or bool (multiple)
--var (-V) = : set JSON value to variable with a specified name. (multiple)
--rollup : define rollup rule by JavaScript. (multiple)
--cookie-filter <+RE|-RE> : filter cookies to log by RE matching the name. ("+" is passing, "-" is suppressing)
--log-filter <+type|-type> : filter the logging information by the specified type. (multiple. "+" is passing, "-" is suppressing. type: cookie, title, url, pageinfo(= cookie & title & url))
--command-factory : register user defined command factory. (See Note *3)
--no-exit : don't call System.exit at end.
--strict-exit-code : return strict exit code, reflected by selenese command results at end. (See Note *4)
--max-time : Maximum time in seconds that you allow the entire operation to take.
--no-replace-alert-method : disable replacement of alert methods
--help (-h) : show this message.
[Note]
*1 It is available if using "--driver remote --remote-browser firefox".
*2 If you want to use basic and/or proxy authentication on Firefox, then create new profile, install AutoAuth plugin, configure all settings, access test site with the profile, and specify the profile by --profile option.
*3 Use "java -cp ...:selenese-runner.jar Main --command-factory ...".
Because "java" command ignores all class path settings, when using "-jar" option.
*4 The list of exit code (strict/normal) is follows:
- 0/0: SUCCESS
- 2/0: WARNING
- 3/3: FAILURE
- 4/3: ERROR
- 5/0: UNEXECUTED
- 6/3: MAX_TIME_EXCEEDED
- 70/70: FATAL
- 64/64: USAGERequirements
------------* Java 8 or later.
* Apache Maven 2.x or later to build.Building the Application
------------------------* Install Apache Maven.
* clone this repository
* run build script
`mvn -P package`That will create the *selenese-runner.jar* file within the 'target' directory.
Options
-------### Configuration file (1.8.0 or later)
You can read option information from the following configuration file by using "--config" option.
You can overwrite the information by additional command line options.
# configuration file format.
driver: DRIVER_NAME
profile: PROFILE_NAME
profile-dir: /PATH/TO/PROFILE/DIRECTORY
proxy: PROXY_HOST
proxy-user: PROXY_USER
proxy-password: PROXY_PASSWORD
no-proxy: NO_PROXY_HOSTS
cli-args: DRIVER_CLI_ARG1
DRIVER_CLI_ARG2
DRIVER_CLI_ARG3
remote-url: http://remote.example.com:4444/wd/hub
remote-platform: REMOTE_PLATFORM
remote-browser: REMOTE_BROWSER
remote-version: REMOTE_VERSION
# "highlight" parameter is "true" or "false".
highlight: true
screenshot-dir: /PATH/TO/SCREENSHOT/DIRECTORY
screenshot-all: /PATH/TO/SCREENSHOT/DIRECTORY/ALL
screenshot-on-fail: /PATH/TO/SCREENSHOT/DIRECTORY/ON/FAIL
# "ignore-screenshot-command" parameter is "true" or "false".
ignore-screenshot-command: true
baseurl: http://baseurl.example.com/
firefox: /PATH/TO/FIREFOX/BINARY
chromedriver: /PATH/TO/CHROMEDRIVER/BINARY
iedriver: /PATH/TO/IEDRIVER/BINARY
phantomjs: /PATH/TO/PHANTOMJS/BINARY
xml-result: /PATH/TO/XML/RESULT/DIRECTORY
html-result: /PATH/TO/HTML/RESULT/DIRECTORY
# The unit of "timeout" parameter is millisecounds.
timeout: 30000
# The unit of "set-speed" parameter is millisecounds.
set-speed: 100
# The unit of "height" parameter is pixcels.
height: 1024
# The unit of "width" parameter is pixcels.
width: 768
define: CAPABILITY_KEY1=CAPABILITY_VALUE1
CAPABILITY_KEY2=CAPABILITY_VALUE2
CAPABILITY_KEY3+=CAPABILITY_VALUE31
CAPABILITY_KEY3+=CAPABILITY_VALUE32
CAPABILITY_KEY3+=CAPABILITY_VALUE33
rollup: /PATH/TO/ROLLUP/FILE
cookie-filter: COOKIE_FILTER_REGEXP
command-factory: full.qualify.class.Name### Firefox, Chrome and PhantomJS driver
If you want to add command line options to above driver's binary, add following options:
java -jar selenese-runner.jar --driver DRIVER_NAME \
--cli-args ARG1 \
--cli-args ARG2 \
...Example:
* Firefox
java -jar selenese-runner.jar --driver firefox \
--cli-args -jsconsole \
...* Chrome
java -jar selenese-runner.jar --driver chrome \
--cli-args --incognito \
--cli-args --ignore-certificate-errors \
...* PhantomJS
java -jar selenese-runner.jar --driver phantomjs \
--cli-args --ssl-certificates-path=/PATH/TO/CERTS-DIR/ \
...### Rollup
"--rollup" option and "rollup" command are used for a definition and execution of a user-defined command.
Refer to the following for how to write "rollup" script:
* Using the rollup feature of Selenium
http://sanjitmohanty.wordpress.com/2012/07/06/using-the-rollup-feature-of-selenium/
* Selenium Tutorial : Testing Strategies
https://thenewcircle.com/static/bookshelf/selenium_tutorial/testing_strategies.htmlHowever, this feature has the following limitations:
* supported properties of rollup rule:
** name
** args
** expandedCommands or getExpandedCommans
* cannot access any browser object.### Cookie filter
You can filter cookies to log by the regular expression matching the name.
Example:
* logging the cookie whose name ends with "ID":
java -jar selenese-runner.jar --cookie-filter +'ID$' ...
* don't logging the cookie whose name contains "__utm":
java -jar selenese-runner.jar --cookie-filter -__utm ...
### User defined command factory
You can register user defined command factory:
java -cp YOUR_CLASS_PATH:selenese-runner.jar Main \
--command-factory your.command.factory.ClassName ...Note:
* Use the above command line instead of "java -jar ...".
Because "java" command ignores all class path settings, when using "-jar" option.* Top-level Main class is contained ONLY in stand-alone "selenese-runner.jar",
and is not contained in "selenese-runner-java-X.Y.Z.jar" in maven repository.
Please use "jp.vmi.selenium.selenese.Main" instead of "Main"
if you want to use this feature with the jar in maven repository.Original Commands
-----------------### `include`
Usage: `include` FILENAME
This command include and execute FILENAME test-case.
You can use variables in FILENAME.
See [the test-case example](src/test/resources/selenese/testcase_include.html).
License
-------The Apache License, Version 2.0.
see "LICENSE" file.