Commit fcf0bf42 authored by Sascha Girrulat's avatar Sascha Girrulat

New upstream version 3.8.0+dfsg1

parent 246d38c6
Selenium 2.53.2
* Fix send keys when using PUA keys e.g. Keys.RIGHT #1839
* Fix cookie file leak in PhantomJS #1854
Selenium 2.53.1
Selenium 3.8.0
* Firefox options can now be imported from selenium.webdriver as FirefoxOptions (#5120)
* Headless mode can now be set in Chrome Options using `set_headless`
* Headless mode can now be set in Firefox Options using `set_headless`
* Add the WebKitGTK WebDriver and options class (#4635)
* Browser options can now be passed to remote WebDriver via the `options` parameter
* Browser option parameters are now standardized across drivers as `options`. `firefox_options`,
`chrome_options`, and `ie_options` are now deprecated
* Added missing W3C Error Codes (#4556)
* Support has been removed for Python versions 2.6 and 3.3
Selenium 3.7.0
* need to pass applicable environment variables to tox
* Fix active_element for w3c drivers (#3979)
* add support for minimize command
* add support for fullscreen command
* window rect commands should fail on firefox and remote (legacy)
* Fix python backward compatibility for window commands (#4937)
* Update docstrings to specify the type of path needed to install firefox addons. (#4881)
* Update python chromeOptions key for capabilities (#4622)
* Fix python pause action implementation (#4795)
Selenium 3.6.0
* Fix package name in python webelement module (#4670)
* Fix python driver examples (#3872)
* No need to multiply pause by 1000
* Add pause to action chains
* only check for proxyType once
* lowercase proxy type for w3c payload in python #4574
* guarding against null return value from find_elements in python #4555
* remove unnecessary pytest marking, address flake8 issues
* allow IE WebDriver to accept IE Options
* add IE Options class
* convert OSS capabilities to W3C equivalent for W3C payload
* Add Safari to API docs
Selenium 3.5.0
* Numerous test fixes
*Iterate over capabilities in a way to support py2.7 and py3
* Fix W3C switching to window by name.
* Support GeckoDriver addon install/uninstall commands #4215.
* Move firefox_profile into moz:firefoxOptions.
* Filter non-W3C capability names out of alwaysMatch.
* Honor cmd line args passed to Service ctor (#4167)
* Add expected conditions based on URL to Python Expected Conditions #4160
* Add network emulation to Chrome Python bindings (#4011)
* add warning when saving incorrectly named screenshot (#4141)
Selenium 3.4.3
* Fix EventFiringWebdriver and WebElement to raise AttributeError on missing attributes. (#4107)
* unwrap WebElements inside dicts
Selenium 3.4.2
* translate move_by_offset command to w3c
* Update capabilities properly instead of assuming dict structure. Fixes #3927
* Add missing file for Chrome options to API docs.
* Add Chrome options module to API docs.
Selenium 3.4.1
* Add back the ability to set profile when using Firefox 45ESR. Fixes #3897
Selenium 3.4.0
* Correct usage of newSession around `firstMatch` and `alwaysMatch`
* Remove superfluous capabilities that are not needed
* Add expected condition that waits for all found elements to be visible (#3532)
* Allow methods wrapped by EventFiringWebDriver and EventFiringWebElement (#806)
* Dropping `javascriptEnabled` capability for real browsers
* Use W3C check from parent object instead of assuming from capabilities
* Bump example source distribution to match latest release.
* Replace TypeError with KeyError in remote webdriver error handler code (#3826)
* When testing Marionette use default capabilities in testing
* Conform to the api of urllib2 for adding header for a request (#3803)
* Add `text` key to alert#sendKeys parameters for W3C Endpoint
* Location once scrolled into view should use W3C executeScript endpoint not JSONWP
* Fixed the usage information in documentation of "save_screenshot". (#3804)
* Add Element Not Interactable exception
* Clean up imports in error handler
* flake8 cleanup
Selenium 3.3.3
* make w3c execute_script commands unique
Selenium 3.3.2
* Update window commands to use W3C End points
* Update Alert when in W3C mode to use W3C Endpoints
* Update to new W3C Execute Script end points
* Add setting/getting proxy details to Firefox Options
* Deprecate the use of browser profile when instantiating a session
* Update start session to handle the W3C New Session
* Add get/set window rect commands
* Add InvalidArgumentException
* When passing in `text` to send_keys, make sure we send a string not array
* Fix string decoding in remote connection (#3663)
* Fix indentation to satisfy PEP8
* Try use old way of setting page load timeout if new way fails. Fixes #3654
* fix file uploads for Firefox
* Run unit tests on Python 3.3, 3.4, and 3.5 (#3638)
* Fix indentation in double_click.
* Fix non-W3C page load timeout setting.
Selenium 3.3.1
* Fix encoding of basic auth header when using Python 3 Fixes #3622
* Add initial unit test suite
* Update W3C Timeout setting to be in line with the specification
* support.ui.Select class inherits from object (#3067)
* fix bug in proxy constructor that some properties are not proper set (#3459)
* Fix flake8 issues (#3628)
Selenium 3.3.0
** Note ** If you are updating to this version, please also update GeckoDriver to v0.15.0
* Fix python HTTPS encoding for python driver (#3379)
* Allow Firefox preferences to be set directly in Options
* Fix shutdown and process termination (#3263)
* Preventing exception if log_path is none or empty. Fixes #3128
* Add the W3C capability to Firefox for accepting insecure certificates
* Initial implementation of Pointer Actions
* Only skip tests if driver name matches a directory name.
* Update calls that return a pure object with keys to look for 'value' key
* Initial W3C Actions support
* fix docs output directory
Selenium 3.0.2
* Add support for W3C Get Active Element
* Return when we use executeScript for faking WebElement.get_property
* Expand user paths and resolve absolute path for Chrome extensions
* Add support for verbose logging and custom path to EdgeDriver
* Update TakeElementScreenshot to match WebDriver specification
* Raise WebDriverException when FirefoxBinary fails to locate binary
* Fix getting IP for python 3
* Write Service log to DEVNULL by default
* Only attempt to remove the Firefox profile path if one was specified
* Added context manager for chrome/content in Firefox
Selenium 3.0.1
* Fix regressions with python 3
* Add support for Safari Technology Preview
Selenium 3.0.0
* new FirefoxDriver ctor precedence logic and moz:firefoxOptions support (#2882)
* Add W3C Set Window Position and W3C Get Window Position
* enable log path setting from firefox webdriver (#2700)
* Correct encoding of getAttribute.js and only load it once. Fixes #2785
* Encode the isDisplayed atom and only load it once
Selenium 3.0.0.b3
* Use atoms for get_attribute and is_displayed when communicating with
a w3c compliant remote end.
* Make it possible to specialise web element
Selenium 3.0.0.b2
* Updated Marionette port argument to match other drivers.
Selenium 3.0.0.b1
* Fix basestring reference to work with python 3. Fixes #1820
* Correct Length conditional when filtering in PhantomJS. Fixes #1817
* Fix send keys when using PUA keys e.g. Keys.RIGHT #1839
* Fix cookie file leak in PhantomJS #1854
* Use the correct binary path when using Marionette
* Fixed: Unhelpful error message when PhantomJS exits. (#2173 #2168)
* Fix broken link to python documentation (#2159)
* Attempt to remove Firefox profile when using Marionette
* Ensure all capabilities are either within desiredCapabilities or requiredCapabilities
* Correct the expected capability name for the Firefox profile
* Add Firefox options to capabilities
* Visibility_of_all implies it only returns elements if all visible (#2052)
* Find visible elements (#2041)
* Pass the firefox_profile as a desired capability in the Python client when using a remote server
* Avoid checking exception details for invalid locators due to differences in server implementations
* Handle capabilities better with Marionette and GeckoDriver
* Updated the maxVersion of FirefoxDriver xpi maxVersion to work with Firefox 47.0.1
* Remove Selenium RC support
Selenium 2.53.0
* Adding Options object for use with Python FirefoxDriver
......
prune *
recursive-include py/selenium/webdriver *.py
recursive-include py/selenium/webdriver/common *.py
recursive-include py/selenium/webdriver/common/html5 *.py
recursive-include py/selenium/common *.py
recursive-include py/selenium/webdriver/chrome *.py
recursive-include py/selenium/webdriver/opera *.py
recursive-include py/selenium/webdriver/phantomjs *.py
recursive-include py/selenium/webdriver/firefox *.py *.xpi *.json
recursive-include py/selenium/webdriver/firefox/x86 *.so
recursive-include py/selenium/webdriver/firefox/amd64 *.so
recursive-include py/selenium/webdriver/ie *.py
recursive-include py/selenium/webdriver/edge *.py
recursive-include py/selenium/webdriver/remote *.py
recursive-include py/selenium/webdriver/support *.py
include py/selenium/selenium.py
include py/selenium/__init__.py
include py/CHANGES
include py/README.rst
recursive-include selenium/webdriver *.py
recursive-include selenium/webdriver/common *.py
recursive-include selenium/webdriver/common/actions *.py
recursive-include selenium/webdriver/common/html5 *.py
recursive-include selenium/common *.py
recursive-include selenium/webdriver/chrome *.py
recursive-include selenium/webdriver/opera *.py
recursive-include selenium/webdriver/phantomjs *.py
recursive-include selenium/webdriver/firefox *.py *.xpi *.json
recursive-include selenium/webdriver/firefox/x86 *.so
recursive-include selenium/webdriver/firefox/amd64 *.so
recursive-include selenium/webdriver/ie *.py
recursive-include selenium/webdriver/edge *.py
recursive-include selenium/webdriver/remote *.py *.js
recursive-include selenium/webdriver/support *.py
include selenium/selenium.py
include selenium/__init__.py
include CHANGES
include README.rst
include LICENSE
recursive-include selenium.egg-info *
Metadata-Version: 1.1
Name: selenium
Version: 2.53.2
Version: 3.8.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
License: Apache 2.0
Description-Content-Type: UNKNOWN
Description: ======================
Selenium Client Driver
======================
......@@ -15,40 +16,59 @@ Description: ======================
Python language bindings for Selenium WebDriver.
The `selenium` package is used automate web browser interaction from Python.
The `selenium` package is used to automate web browser interaction from Python.
+-----------+-----------------------------------------------------------------------------------+
| **Home**: | http://www.seleniumhq.org |
+-----------+-----------------------------------------------------------------------------------+
| **Docs**: | `selenium package API <http://selenium.googlecode.com/git/docs/api/py/api.html>`_ |
+-----------+-----------------------------------------------------------------------------------+
| **Dev**: | https://github.com/SeleniumHQ/selenium |
+-----------+-----------------------------------------------------------------------------------+
| **PyPI**: | https://pypi.python.org/pypi/selenium |
+-----------+-----------------------------------------------------------------------------------+
| **IRC**: | **#selenium** channel on freenode |
+-----------+-----------------------------------------------------------------------------------+
+-----------+--------------------------------------------------------------------------------------+
| **Home**: | http://www.seleniumhq.org |
+-----------+--------------------------------------------------------------------------------------+
| **Docs**: | `selenium package API <https://seleniumhq.github.io/selenium/docs/api/py/api.html>`_ |
+-----------+--------------------------------------------------------------------------------------+
| **Dev**: | https://github.com/SeleniumHQ/Selenium |
+-----------+--------------------------------------------------------------------------------------+
| **PyPI**: | https://pypi.python.org/pypi/selenium |
+-----------+--------------------------------------------------------------------------------------+
| **IRC**: | **#selenium** channel on freenode |
+-----------+--------------------------------------------------------------------------------------+
Several browsers/drivers are supported (Firefox, Chrome, Internet Explorer, PhantomJS), as well as the Remote protocol.
Supported Python Versions
=========================
* Python 2.6, 2.7
* Python 3.2+
* Python 2.7, 3.4+
Installing
==========
If you have `pip <http://www.pip-installer.org>`_ on your system, you can simply install or upgrade the Python bindings::
If you have `pip <https://pip.pypa.io/>`_ on your system, you can simply install or upgrade the Python bindings::
pip install -U selenium
Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-2.53.2.tar.gz), unarchive it, and run::
Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-3.8.0.tar.gz), unarchive it, and run::
python setup.py install
Note: both of the methods described above install `selenium` as a system-wide package That will require administrative/root access to ther machine. You may consider using a `virtualenv <http://www.virtualenv.org/>`_ to create isolated Python environments instead.
Note: You may want to consider using `virtualenv <http://www.virtualenv.org/>`_ to create isolated Python environments.
Drivers
=======
Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.
Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.`
Other supported browsers will have their own drivers available. Links to some of the more popular browser drivers follow.
+--------------+-----------------------------------------------------------------------+
| **Chrome**: | https://sites.google.com/a/chromium.org/chromedriver/downloads |
+--------------+-----------------------------------------------------------------------+
| **Edge**: | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
+--------------+-----------------------------------------------------------------------+
| **Firefox**: | https://github.com/mozilla/geckodriver/releases |
+--------------+-----------------------------------------------------------------------+
| **Safari**: | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
+--------------+-----------------------------------------------------------------------+
Example 0:
==========
......@@ -56,7 +76,7 @@ Description: ======================
* open a new Firefox browser
* load the page at the given URL
::
.. code-block:: python
from selenium import webdriver
......@@ -71,7 +91,7 @@ Description: ======================
* search for "seleniumhq"
* close the browser
::
.. code-block:: python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
......@@ -91,9 +111,10 @@ Description: ======================
Selenium WebDriver is often used as a basis for testing web applications. Here is a simple example uisng Python's standard `unittest <http://docs.python.org/3/library/unittest.html>`_ library:
::
.. code-block:: python
import unittest
from selenium import webdriver
class GoogleTestCase(unittest.TestCase):
......@@ -115,18 +136,22 @@ Description: ======================
However, to use Selenium Webdriver Remote or the legacy Selenium API (Selenium-RC), you need to also run the Selenium server. The server requires a Java Runtime Environment (JRE).
Download the server separately, from: http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.0.jar
Download the server separately, from: http://selenium-release.storage.googleapis.com/3.8/selenium-server-standalone-3.8.0.jar
Run the server from the command line::
java -jar selenium-server-standalone-2.53.0.jar
java -jar selenium-server-standalone-3.8.0.jar
Then run your Python client scripts.
Use The Source Luke!
====================
View source code online at https://github.com/SeleniumHQ/selenium/tree/master/py/
View source code online:
+-----------+-------------------------------------------------------+
| official: | https://github.com/SeleniumHQ/selenium/tree/master/py |
+-----------+-------------------------------------------------------+
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
......@@ -138,8 +163,7 @@ Classifier: Operating System :: MacOS :: MacOS X
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
......@@ -7,40 +7,59 @@ Introduction
Python language bindings for Selenium WebDriver.
The `selenium` package is used automate web browser interaction from Python.
+-----------+-----------------------------------------------------------------------------------+
| **Home**: | http://www.seleniumhq.org |
+-----------+-----------------------------------------------------------------------------------+
| **Docs**: | `selenium package API <http://selenium.googlecode.com/git/docs/api/py/api.html>`_ |
+-----------+-----------------------------------------------------------------------------------+
| **Dev**: | https://github.com/SeleniumHQ/selenium |
+-----------+-----------------------------------------------------------------------------------+
| **PyPI**: | https://pypi.python.org/pypi/selenium |
+-----------+-----------------------------------------------------------------------------------+
| **IRC**: | **#selenium** channel on freenode |
+-----------+-----------------------------------------------------------------------------------+
The `selenium` package is used to automate web browser interaction from Python.
+-----------+--------------------------------------------------------------------------------------+
| **Home**: | http://www.seleniumhq.org |
+-----------+--------------------------------------------------------------------------------------+
| **Docs**: | `selenium package API <https://seleniumhq.github.io/selenium/docs/api/py/api.html>`_ |
+-----------+--------------------------------------------------------------------------------------+
| **Dev**: | https://github.com/SeleniumHQ/Selenium |
+-----------+--------------------------------------------------------------------------------------+
| **PyPI**: | https://pypi.python.org/pypi/selenium |
+-----------+--------------------------------------------------------------------------------------+
| **IRC**: | **#selenium** channel on freenode |
+-----------+--------------------------------------------------------------------------------------+
Several browsers/drivers are supported (Firefox, Chrome, Internet Explorer, PhantomJS), as well as the Remote protocol.
Supported Python Versions
=========================
* Python 2.6, 2.7
* Python 3.2+
* Python 2.7, 3.4+
Installing
==========
If you have `pip <http://www.pip-installer.org>`_ on your system, you can simply install or upgrade the Python bindings::
If you have `pip <https://pip.pypa.io/>`_ on your system, you can simply install or upgrade the Python bindings::
pip install -U selenium
Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-2.53.2.tar.gz), unarchive it, and run::
Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-3.8.0.tar.gz), unarchive it, and run::
python setup.py install
Note: both of the methods described above install `selenium` as a system-wide package That will require administrative/root access to ther machine. You may consider using a `virtualenv <http://www.virtualenv.org/>`_ to create isolated Python environments instead.
Note: You may want to consider using `virtualenv <http://www.virtualenv.org/>`_ to create isolated Python environments.
Drivers
=======
Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.
Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.`
Other supported browsers will have their own drivers available. Links to some of the more popular browser drivers follow.
+--------------+-----------------------------------------------------------------------+
| **Chrome**: | https://sites.google.com/a/chromium.org/chromedriver/downloads |
+--------------+-----------------------------------------------------------------------+
| **Edge**: | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
+--------------+-----------------------------------------------------------------------+
| **Firefox**: | https://github.com/mozilla/geckodriver/releases |
+--------------+-----------------------------------------------------------------------+
| **Safari**: | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
+--------------+-----------------------------------------------------------------------+
Example 0:
==========
......@@ -48,7 +67,7 @@ Example 0:
* open a new Firefox browser
* load the page at the given URL
::
.. code-block:: python
from selenium import webdriver
......@@ -63,7 +82,7 @@ Example 1:
* search for "seleniumhq"
* close the browser
::
.. code-block:: python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
......@@ -83,9 +102,10 @@ Example 2:
Selenium WebDriver is often used as a basis for testing web applications. Here is a simple example uisng Python's standard `unittest <http://docs.python.org/3/library/unittest.html>`_ library:
::
.. code-block:: python
import unittest
from selenium import webdriver
class GoogleTestCase(unittest.TestCase):
......@@ -107,15 +127,19 @@ For normal WebDriver scripts (non-Remote), the Java server is not needed.
However, to use Selenium Webdriver Remote or the legacy Selenium API (Selenium-RC), you need to also run the Selenium server. The server requires a Java Runtime Environment (JRE).
Download the server separately, from: http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.0.jar
Download the server separately, from: http://selenium-release.storage.googleapis.com/3.8/selenium-server-standalone-3.8.0.jar
Run the server from the command line::
java -jar selenium-server-standalone-2.53.0.jar
java -jar selenium-server-standalone-3.8.0.jar
Then run your Python client scripts.
Use The Source Luke!
====================
View source code online at https://github.com/SeleniumHQ/selenium/tree/master/py/
View source code online:
+-----------+-------------------------------------------------------+
| official: | https://github.com/SeleniumHQ/selenium/tree/master/py |
+-----------+-------------------------------------------------------+
# Licensed to the Software Freedom Conservancy (SFC) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The SFC licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
from . import exceptions
This diff is collapsed.
# Licensed to the Software Freedom Conservancy (SFC) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The SFC licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
from os import devnull
import subprocess
from subprocess import PIPE
import time
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common import utils
class Service(object):
"""
Object that manages the starting and stopping of the SafariDriver
"""
def __init__(self, executable_path, port=0, quiet=False):
"""
Creates a new instance of the Service
:Args:
- executable_path : Path to the SafariDriver
- port : Port the service is running on """
self.port = port
self.path = executable_path
if self.port == 0:
self.port = utils.free_port()
self.quiet = quiet
def start(self):
"""
Starts the SafariDriver Service.
:Exceptions:
- WebDriverException : Raised either when it can't start the service
or when it can't connect to the service
"""
kwargs = dict()
if self.quiet:
devnull_out = open(devnull, 'w')
kwargs.update(stdout=devnull_out,
stderr=devnull_out)
try:
self.process = subprocess.Popen(["java", "-jar", self.path, "-port", "%s" % self.port],
**kwargs)
except:
raise WebDriverException(
"SafariDriver executable needs to be available in the path.")
time.sleep(10)
count = 0
while not utils.is_connectable(self.port):
count += 1
time.sleep(1)
if count == 30:
raise WebDriverException("Can not connect to the SafariDriver")
@property
def service_url(self):
"""
Gets the url of the SafariDriver Service
"""
return "http://localhost:%d/wd/hub" % self.port
def stop(self):
"""
Tells the SafariDriver to stop and cleans up the process
"""
# If it's dead don't worry
if self.process is None:
return
self.process.kill()
self.process.wait()
# Licensed to the Software Freedom Conservancy (SFC) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The SFC licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
from .abstract_event_listener import AbstractEventListener
from .event_firing_webdriver import EventFiringWebDriver
Metadata-Version: 1.1
Name: selenium
Version: 2.53.2
Version: 3.8.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
License: Apache 2.0
Description-Content-Type: UNKNOWN
Description: ======================
Selenium Client Driver
======================
......@@ -15,40 +16,59 @@ Description: ======================
Python language bindings for Selenium WebDriver.
The `selenium` package is used automate web browser interaction from Python.
The `selenium` package is used to automate web browser interaction from Python.
+-----------+-----------------------------------------------------------------------------------+
| **Home**: | http://www.seleniumhq.org |
+-----------+-----------------------------------------------------------------------------------+
| **Docs**: | `selenium package API <http://selenium.googlecode.com/git/docs/api/py/api.html>`_ |
+-----------+-----------------------------------------------------------------------------------+
| **Dev**: | https://github.com/SeleniumHQ/selenium |
+-----------+-----------------------------------------------------------------------------------+
| **PyPI**: | https://pypi.python.org/pypi/selenium |
+-----------+-----------------------------------------------------------------------------------+
| **IRC**: | **#selenium** channel on freenode |
+-----------+-----------------------------------------------------------------------------------+
+-----------+--------------------------------------------------------------------------------------+
| **Home**: | http://www.seleniumhq.org |
+-----------+--------------------------------------------------------------------------------------+
| **Docs**: | `selenium package API <https://seleniumhq.github.io/selenium/docs/api/py/api.html>`_ |
+-----------+--------------------------------------------------------------------------------------+
| **Dev**: | https://github.com/SeleniumHQ/Selenium |
+-----------+--------------------------------------------------------------------------------------+
| **PyPI**: | https://pypi.python.org/pypi/selenium |
+-----------+--------------------------------------------------------------------------------------+
| **IRC**: | **#selenium** channel on freenode |
+-----------+--------------------------------------------------------------------------------------+
Several browsers/drivers are supported (Firefox, Chrome, Internet Explorer, PhantomJS), as well as the Remote protocol.
Supported Python Versions
=========================
* Python 2.6, 2.7
* Python 3.2+
* Python 2.7, 3.4+
Installing
==========
If you have `pip <http://www.pip-installer.org>`_ on your system, you can simply install or upgrade the Python bindings::
If you have `pip <https://pip.pypa.io/>`_ on your system, you can simply install or upgrade the Python bindings::
pip install -U selenium
Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-2.53.2.tar.gz), unarchive it, and run::
Alternately, you can download the source distribution from `PyPI <http://pypi.python.org/pypi/selenium>`_ (e.g. selenium-3.8.0.tar.gz), unarchive it, and run::
python setup.py install
Note: both of the methods described above install `selenium` as a system-wide package That will require administrative/root access to ther machine. You may consider using a `virtualenv <http://www.virtualenv.org/>`_ to create isolated Python environments instead.
Note: You may want to consider using `virtualenv <http://www.virtualenv.org/>`_ to create isolated Python environments.
Drivers
=======
Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.
Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.`
Other supported browsers will have their own drivers available. Links to some of the more popular browser drivers follow.
+--------------+-----------------------------------------------------------------------+
| **Chrome**: | https://sites.google.com/a/chromium.org/chromedriver/downloads |
+--------------+-----------------------------------------------------------------------+
| **Edge**: | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
+--------------+-----------------------------------------------------------------------+
| **Firefox**: | https://github.com/mozilla/geckodriver/releases |
+--------------+-----------------------------------------------------------------------+
| **Safari**: | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
+--------------+-----------------------------------------------------------------------+
Example 0:
==========
......@@ -56,7 +76,7 @@ Description: ======================
* open a new Firefox browser
* load the page at the given URL
::
.. code-block:: python