Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
5c48703
Add test file.
Aug 19, 2011
e9b2534
removed test file
Aug 19, 2011
0587f3f
Clean up inconsistent line endings
rtomac Oct 22, 2011
d17118f
Change .hgignore to .gitingore
rtomac Oct 22, 2011
d140caa
Update project URL
rtomac Oct 22, 2011
ef76f18
Don't build readmes by default
rtomac Oct 22, 2011
a9ba006
Remove readme HTML files from source control
rtomac Oct 24, 2011
13f3ceb
Give readme files to .rest so GitHub will render
rtomac Oct 24, 2011
cc455b5
Support building readme files with .rest extension
rtomac Oct 24, 2011
cfb6ed0
Include .rest files in build package
rtomac Oct 24, 2011
b3c52ce
Rename demo/README.txt to demo/README.rest
rtomac Oct 24, 2011
152b0f7
Make sure .rest files get included in build package
rtomac Oct 24, 2011
a417245
Clean up readme documentation, including new BUILD.rest file
rtomac Oct 25, 2011
1c795f5
Minor documentation cleanups
rtomac Oct 25, 2011
e60ba8e
Minor update to readme
rtomac Oct 25, 2011
2eec8bd
Fix issues with dist build, increment version to 0.5.1
rtomac Oct 25, 2011
7d444a5
Update BUILD readme
rtomac Oct 25, 2011
c1cd0c0
Increment maintenance version
rtomac Oct 25, 2011
56e8b35
Change keywords Get Url => Get Location and Log Url => Log Location
rtomac Oct 25, 2011
1b35ec7
Add Focus keyword
rtomac Oct 25, 2011
c25eb2a
Add Simulate keyword
rtomac Oct 25, 2011
8da45b0
Add support for 'main' as window name to Select Window/window manager
rtomac Oct 26, 2011
c222fea
Add Get Window Names keyword
rtomac Oct 26, 2011
681d707
Add Get Window Titles and Get Window Identifiers keywords
rtomac Oct 26, 2011
8e3a52f
Add support for DOM locators
rtomac Oct 26, 2011
a47bc6c
Update documentation
rtomac Oct 26, 2011
bc77808
Increment version to 0.5.3 since 0.5.2 released
rtomac Oct 26, 2011
ca08682
Update preconditions to reflect system requirements for Selenium Pyth…
rtomac Nov 11, 2011
d4ecc96
Reverted setup.py to not using metadata.py due to install conflicts. …
emanlove Nov 17, 2011
b59eb9d
Minor syntax error fix.
emanlove Nov 17, 2011
f087a05
Added code to set/get Selenium's implicit wait functionality. Set def…
emanlove Nov 25, 2011
c403493
Reworked how package data is brought into setup.py. Fixes issue of br…
emanlove Nov 26, 2011
3d4a1d6
Switched from distribute to setuptools. Fixed issue with missing pac…
emanlove Nov 27, 2011
1f97931
Initial removal of third-party libraries.
emanlove Nov 27, 2011
7a15f2f
Removed metadata.py.
emanlove Nov 28, 2011
25a9436
Temporary fix for missing VERSION string after removing metadata.py.
emanlove Dec 11, 2011
88aeaf3
Refactored some unit tests to make compatible with both Python 2.6 an…
emanlove Dec 5, 2011
8c9dca8
Refactored remaining unit tests to make compatible with both Python 2…
emanlove Dec 5, 2011
4e12e37
added implicit wait functionality that can be set upon creation of th…
j1z0 Jan 4, 2012
909d0c7
undoing some changes that shouldn't be in this branch
j1z0 Jan 4, 2012
219ba3a
undoing some changes that shouldn't be in this branch
j1z0 Jan 4, 2012
f518b7c
cleanup of implicit waits functionality as per my discussion with Ed
j1z0 Jan 13, 2012
873f393
Parse attribute locator by partitioning the string starting from the …
Jan 9, 2012
cb86a29
enabled opera support the javascript and mouse tests don't go so well…
j1z0 Feb 11, 2012
4537315
got basic remoting to work and updated the acceptance tests so they c…
j1z0 Feb 11, 2012
115bc2f
got desired_capabilities working for remote webdriver connections and…
j1z0 Feb 12, 2012
eb4e73d
Added tests for asynchronous javascript calls to selenium and tests f…
emanlove Dec 20, 2011
cfc6641
Fixed issue with set_selenium_timeout keyword. Updated test for time…
emanlove Dec 20, 2011
4780f2b
Temporarily removed a couple of tests. Need to implement multiple ar…
emanlove Dec 20, 2011
878f470
Minor change. Reverted back to no newline at end of file.
emanlove Jan 22, 2012
cb4c4b3
marked certain acceptance tests as known issues - firefox as they are…
j1z0 Feb 16, 2012
5ec0c07
oops that last check in probably broke the build... heres a fix
j1z0 Feb 16, 2012
4aa9e41
To select an item in a single selection list, clicking on the item no…
emanlove Mar 3, 2012
666fb69
Reset Selenium Timeout to default 5 seconds at end of async_javascrip…
emanlove Mar 6, 2012
b8d5f09
Added 'Close All Browsers' to Suite Teardown in order to fix issue wi…
emanlove Mar 5, 2012
1d0f133
- Added robotframework >= 2.6.3 dependency to setup.py install_requires
rtomac Mar 8, 2012
5f5aba1
Documentation cleanup
rtomac Mar 8, 2012
b81e640
Bump version to 1.0.0
rtomac Mar 10, 2012
01d780a
Require robot version 2.6.3 exactly, not ready for 2.7 yet
rtomac Mar 10, 2012
6d68be7
- Fix doc and demo build that were still depending on metadata.py
rtomac Mar 10, 2012
5a9d861
updated setup.py to automatically download setuptools if it doesn't e…
j1z0 Mar 10, 2012
521fd7d
added README link to README.rst so setuputil doesn't complain
j1z0 Mar 10, 2012
efbe3b8
moved ez_setup.py under src so it will be packaged with setuptools / …
j1z0 Mar 10, 2012
9dffe29
moved ez_setup.py under src so it will be packaged by distutils
j1z0 Mar 10, 2012
3e7d006
removed adding the lib directory from MANIFEST.in
j1z0 Mar 10, 2012
f93bc52
trying to get the tag to upload to github
j1z0 Mar 10, 2012
f27d3d0
updated authors in setup.py and readded version.py which I accidental…
j1z0 Mar 11, 2012
7f4aff7
updaded BUILD.rst to document the process of publishing to PyPi
j1z0 Mar 11, 2012
cf890d3
generate doc with robot 2.7 or later
jussimalinen May 4, 2012
052ac67
update dependency to =>2.6.0. 2.5 is not supported because library us…
jussimalinen May 4, 2012
cd3bfeb
update status checker to Robot 2.7 version
jussimalinen May 4, 2012
334568c
check that robot is atleast version 2.7
jussimalinen May 4, 2012
22fa116
fix log message checks to 2.7 statuschecker indexes (setup is now the…
jussimalinen May 4, 2012
77fcd83
removed unnessary libdoc.py
jussimalinen May 4, 2012
4438a79
fix version reference in demo packaging
jussimalinen May 4, 2012
805e9f7
fix generate.py to provide a main-method for build_dist.py
jussimalinen May 4, 2012
f1c1122
remove unused LibDoc-import
jussimalinen May 4, 2012
8c5e9b8
Temporarily forgo running statuschecker.py under Robot 2.6 so that te…
rtomac May 31, 2012
5c6fdd8
Increment version, sort out some setuptools/ez_setup stuff, focus on …
rtomac May 31, 2012
2d0385b
Roll publish to PyPI into build_dist.py and update BUILD documentation
rtomac Jun 1, 2012
50e9c7a
Doc update
rtomac Jun 1, 2012
f5c31aa
Deal more directly with building of windows installers
rtomac Jun 1, 2012
6304786
Keep building .exe installers for Windows, not MSI
rtomac Jun 1, 2012
d4daaf2
Minor update to build doc
rtomac Jun 1, 2012
e63cc31
Minor update to build doc
rtomac Jun 1, 2012
0ee8ee4
Add CHANGES file
rtomac Jun 1, 2012
32b4272
Add note in docs on tagging release
rtomac Jun 1, 2012
9a1bd97
fix get text
jollychang Jul 2, 2012
45f26f2
acceptance test cases for iframes
kontulai Jun 9, 2012
3328a68
Removed 'frame' tag when searching for frames, either <frame> or <ifr…
emanlove Jun 28, 2012
cbb8ccd
Added tests to verify 'Page Should Contain' keyword works with both f…
emanlove Jun 28, 2012
8f83976
Applied fix which allows the internal function _page_conatains to sea…
emanlove Jun 28, 2012
13dc03c
Added iframe support by removing strict filtering for only <frame> el…
emanlove Jun 29, 2012
2c8b3e5
couple typos; logLevel should be loglevel and locator should be attri…
Harri Jun 18, 2012
f75a95d
added the get_text back.
jouk0 Dec 21, 2011
cfb8730
Added the 'get text' keyword to be backwards compatible with the orig…
emanlove Jun 30, 2012
aa22525
Added test for 'Get Text' keyword.
emanlove Jun 30, 2012
4e8ce53
removed LOG 2 from Documentation string in Frames acceptance tests, t…
j1z0 Jun 30, 2012
8557747
Added support for drag and drop plus drag and drop by offset. fixes #60
j1z0 Jun 30, 2012
5efe7b3
Add HTMLUnit remote driver support
SoCalLongboard Jun 30, 2012
cd17336
added Change notes for HTMLUnit support
j1z0 Jul 1, 2012
1aa1682
added unit tests for HTMLUnit browser creation
j1z0 Jul 1, 2012
53d6e23
added the get_text back.
jouk0 Dec 21, 2011
91a4a78
maximizes browser for mutiple tab window
jollychang Aug 1, 2012
af9ebd0
revert
jollychang Aug 1, 2012
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions .hgignore → .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
syntax:glob
.project
.pydevproject
test/results
*.pyc
*.orig
MANIFEST

dist
build
.project
.pydevproject
test/results
*.pyc
*.orig
MANIFEST
doc/*.html
*.egg-info
*.egg

dist
build
189 changes: 189 additions & 0 deletions BUILD.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
Selenium2Library Developer Information
======================================


Directory Layout
----------------

MANIFEST.in
File that controls what gets included in a distribution

setup.py
Setup script (uses setuptools)

demo/
Demo web app, acceptance tests, and scripts

doc/
Scripts to build keyword and readme documentation

src/
Library source code

test/
Unit and acceptance tests for Selenium2Library


Unit and Acceptance Tests
-------------------------

The test directory contains everything needed to run Selenium2Library
tests with Robot Framework. This includes:

- Unit tests under `unit` directory.
- Acceptance tests written with Robot Framework under `acceptance`
directory
- A very simple httpserver.py which is used to serve the html for tests in
`resources/testserver`
- A collection of simple html files under 'resources/html' directory
- Start-up scripts for executing the tests

To run unit and acceptance tests, run::

python test/run_tests.py python|jython ff|ie|chrome [options]

The first argument to the script defines the interpreter to be used
to run Robot. The second argument defines the browser to be used,
using the same browser tokens that you would use in your Robot
tests.

Due to the structure of the tests, the directory containg the test
case files (`acceptance`) is always given to Robot as test data path.
To run only a subset of test cases, Robot command line arguments
--test, --suite, --include and --exclude may be used.

Examples::

# Run all tests with Python and Firefox
python test/run_tests.py python ff
# Run only test suite `javascript` with Jython and Internet Explorer
python test/run_tests.py jython ie -s javascript

To run just the unit tests, run::

python test/run_unit_tests.py


Pushing Code to GitHub
----------------------

Assuming the remote has been setup and named `origin` (it is
setup and named `origin` automatically if you cloned the existing
GitHub repo), run::

git push origin master


Building a Distribution
-----------------------

To build a distribution, run::

python build_dist.py <python 2.6 path> <python 2.7 path>

This script will:

- Generate source distribution packages in .tar.gz and .zip formats
- Generate Python eggs for Python 2.6 and 2.7
- Generate binary installers for Windows x86 and x64 (if run on Windows)
- Generate a demo distribution package in .zip format.
- Re-generate keyword documentation in doc folder

Note: The Windows installers will only be built if the script is run on
a Windows machine. If the rest of the distribution has been built on
a non-Windows machine and you want to build just the Windows installers,
use the --winonly flag::

python build_dist.py --winonly <python 2.6 path> <python 2.7 path>


Publishing a New Release
------------------------

Build the distribution, this time with the --release flag::

python build_dist.py --release <python 2.6 path> <python 2.7 path>

In addition to building the distribution, this will:

- Register the release/version with PyPI
- Upload the binaries to PyPI for the new release/version

After building and releasing to PyPI:

- Upload dist packages to the `downloads section on GitHub`_ (all dist packages except the eggs)
- Publish the keyword documentation (see `Pushing Keyword Documentation`_)
- Tag the release (see `Tagging a Release`_)

Note: To publish a release, you will need to:

- Register an account on PyPI_ and be given rights to the package by a package owner
- Setup your `.pypirc file`_ (goes in the root of your home directory)


Tagging a Release
-----------------

It's our policy to tag each release. To do so, run::

git tag -a v<ver> -m "<ver> release"
git push --tags

E.g.::

git tag -a v1.0.0 -m "1.0.0 release"
git push --tags


Pushing Keyword Documentation
-----------------------------

The keyword documentation is hosted using GitHub Pages. There is a branch
in the repo called `gh-pages` that contains nothing but the keyword documentation.

First, switch to the `gh-pages` branch::

git checkout gh-pages

If you get an error like "pathspec 'gh-pages' did not match any file(s) known to git",
run the following to setup the upstream configuration for the gh-pages branch::

git checkout -t origin/gh-pages

Next, pull the keyword documentation you generated in the master branch and commit it::

git checkout master doc/Selenium2Library.html
git add doc/Selenium2Library.html
git commit

Then, push it to the remote::

git push origin gh-pages

Last, you probably want to switch back to the master branch::

git checkout master


Building Keyword Documentation
------------------------------

The keyword documentation will get built automatically by build_dist.py,
but if you need to generate it apart from a distribution build, run::

python doc/generate.py


Building Readme Files
---------------------

The readme files get distributed in reStructuredText format (.rst),
so there isn't any reason to build them except to verify how they
are parsed by the reStructuredText parser. To build them, run::

python doc/generate_readmes.py


.. _downloads section on GitHub: https://github.com/rtomac/robotframework-selenium2library/downloads
.. _PyPI: http://pypi.python.org
.. _.pypirc file: http://docs.python.org/distutils/packageindex.html#the-pypirc-file
24 changes: 24 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Release Notes
=============

1.1 (unreleased)
----------------
- Added iframe support by removing strict filtering for only <frame> elements.
[emanlove]

- Added the 'get text' keyword to be backwards compatible with the original
Selenium Library.
[jouk0]

- Added drag and drop support with two functions `drag and drop source
target` and `drag and drop by offset source xoffset yoffset`
[mamathanag] and [j1z0]

- Added HTMLUnit and HTMLUnitWithJS support. Just use a line like:
`Open Browser [initial page url] remote_url=[the selenium-server url] browser=htmlunit`
[SoCalLongboard]

1.0.1
-----
- Support for Robot Framework 2.7
- Improvements to distribution build script and improved documentation
64 changes: 64 additions & 0 deletions INSTALL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
Selenium2Library Installation
=============================


Preconditions
-------------

Selenium2Library supports all Python and Jython interpreters supported by the
Robot Framework and the `Selenium Python Bindings`_. The Selenium Python Bindings
are the most restrictive, and as of now require Python 2.6 or Python 2.7.

Selenium2Library depends on a few other Python libraries, including
of course Robot Framework and Selenium. All dependencies are declared
in setup.py. If you use pip or easy_install to install this library, the
dependencies will be installed for you (this is recommended).


Installing from PyPI (recommended)
----------------------------------

Selenium2Library is available in the Python Package Index (PyPI_). To install,
you need to have `pip`_ installed. Then run::

pip install robotframework-selenium2library

Or alternately, if you only have `easy_install`_,::

easy_install robotframework-selenium2library


Installing from source
----------------------

The source code can be retrieved either as a source distribution or as a clone
of the main source repository. The installer requires Python version 2.4 or
newer. Install by running::

python setup.py install

Or, if you'd like to automatically install dependencies, run::

python setup.py develop

Note: In most linux systems, you need to have root privileges for installation.

Uninstallation is achieved by deleting the installation directory and its
contents from the file system. The default installation directory is
`[PythonLibraries]/site-packages/Selenium2Library`.


Using Windows installer
-----------------------

Currently, Windows installer is the only available binary installer. Just
double-click the installer and follow the instructions.

Selenium2Library can be uninstalled using the Programs and Features utility from
Control Panel (Add/Remove Programs on older versions of Windows).


.. _Selenium Python Bindings: http://code.google.com/p/selenium/wiki/PythonBindings
.. _PyPI: http://code.google.com/p/selenium/wiki/PythonBindings
.. _pip: http://www.pip-installer.org
.. _easy_install: http://pypi.python.org/pypi/setuptools
39 changes: 0 additions & 39 deletions INSTALL.txt

This file was deleted.

11 changes: 6 additions & 5 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
include MANIFEST.in
include *.txt
exclude */*.txt # limit previous command to include *.txt files in root folder
include *.rst
exclude */*.txt # limit previous command to include only *.txt files in root folder
exclude */*.rst # limit previous command to include only *.rst files in root folder
include selenium.bmp

recursive-include demo *.txt *.py *.sh *.bat *.html *.css *.js
recursive-include demo *.txt *.rst *.py *.sh *.bat *.html *.css *.js
prune demo/reports
prune demo/selenium_log.txt
prune demo/output.xml

recursive-include doc *.txt *.html
include doc/Selenium2Library.html

recursive-include src/Selenium2Library *.py
graft src/Selenium2Library/lib
recursive-include src *.py
graft src/Selenium2Library/resources
recursive-exclude src *.pyc
Loading