File: index.rst

package info (click to toggle)
chromium 139.0.7258.127-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 6,122,156 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (181 lines) | stat: -rw-r--r-- 6,387 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
======================
Selenium Client Driver
======================

Introduction
============

Python language bindings for Selenium WebDriver.

The `selenium` package is used to automate web browser interaction from Python.

+-------------------+------------------------------------------------+
| **Home**:         | https://selenium.dev                           |
+-------------------+------------------------------------------------+
| **GitHub**:       | https://github.com/SeleniumHQ/Selenium         |
+-------------------+------------------------------------------------+
| **PyPI**:         | https://pypi.org/project/selenium              |
+-------------------+------------------------------------------------+
| **IRC/Slack**:    | https://www.selenium.dev/support/#ChatRoom     |
+-------------------+------------------------------------------------+
| **Docs**:         | https://www.selenium.dev/selenium/docs/api/py  |
+-------------------+------------------------------------------------+
| **API Docs**:     | `api.html <api.html>`_                         |
+-------------------+------------------------------------------------+

Updated documentation published with each commit is available at: https://selenium-python-api-docs.readthedocs.io

----

Supported Python Versions
=========================

* Python 3.9+

Supported Browsers
==================

Several browsers are supported, as well as the Remote protocol:

* Chrome
* Edge
* Firefox
* Safari
* WebKitGTK
* WPEWebKit

Installing
==========

If you have `pip <https://pip.pypa.io/>`_ on your system, you can simply install or upgrade the Python bindings::

    pip install -U selenium

You may want to consider using a `virtual environment <https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments>`_
to create isolated Python environments.

Drivers
=======

Selenium requires a driver to interface with the chosen browser (chromedriver, edgedriver, geckodriver, etc).

In older versions of Selenium, it was necessary to install and manage these drivers yourself. You had to make sure the driver
executable was available on your system `PATH`, or specified explicitly in code. Modern versions of Selenium handle browser and
driver installation for you with `Selenium Manager <https://www.selenium.dev/documentation/selenium_manager>`_. You generally
don't have to worry about driver installation or configuration now that it's done for you when you instantiate a WebDriver.
Selenium Manager works with most supported platforms and browsers. If it doesn't meet your needs, you can still install and
specify browsers and drivers yourself.

Links to some of the more popular browser drivers:

+--------------+-----------------------------------------------------------------------+
| **Chrome**:  | https://developer.chrome.com/docs/chromedriver                        |
+--------------+-----------------------------------------------------------------------+
| **Edge**:    | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver  |
+--------------+-----------------------------------------------------------------------+
| **Firefox**: | https://github.com/mozilla/geckodriver                                |
+--------------+-----------------------------------------------------------------------+
| **Safari**:  | https://webkit.org/blog/6900/webdriver-support-in-safari-10           |
+--------------+-----------------------------------------------------------------------+

Example 0:
==========

* launch a new Chrome browser
* load a web page
* close the browser

.. code-block:: python

    from selenium import webdriver


    driver = webdriver.Chrome()
    driver.get('https://selenium.dev/')
    driver.quit()

Example 1:
==========

* launch a new Chrome browser
* load the Selenium documentation page
* find the "Webdriver" link
* click the "WebDriver" link
* close the browser

.. code-block:: python

    from selenium import webdriver
    from selenium.webdriver.common.by import By


    driver = webdriver.Chrome()

    driver.get('https://selenium.dev/documentation')
    assert 'Selenium' in driver.title

    elem = driver.find_element(By.ID, 'm-documentationwebdriver')
    elem.click()
    assert 'WebDriver' in driver.title

    driver.quit()

Example 2:
==========

Selenium WebDriver is often used as a basis for testing web applications. Here is a simple example using 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):

        def setUp(self):
            self.driver = webdriver.Firefox()
            self.addCleanup(self.driver.quit)

        def test_page_title(self):
            self.driver.get('https://www.google.com')
            self.assertIn('Google', self.driver.title)

    if __name__ == '__main__':
        unittest.main(verbosity=2)

Selenium Grid (optional)
==========================

For local Selenium scripts, the Java server is not needed.

To use Selenium remotely, you need to also run the Selenium grid.
For information on running Selenium Grid: https://www.selenium.dev/documentation/grid/getting_started/

To use Remote WebDriver see: https://www.selenium.dev/documentation/webdriver/drivers/remote_webdriver/?tab=python

Use The Source Luke!
====================

View source code online:

+---------------+-------------------------------------------------------+
| **Official**: | https://github.com/SeleniumHQ/selenium/tree/trunk/py  |
+---------------+-------------------------------------------------------+

Contributing
=============

 - Fork the selenium repo and clone it locally
 - Create a branch for your work
     - Run: `git checkout -b my-cool-branch-name`
 - Create a virtual environment and install tox
     - Run: `python -m venv venv && source venv/bin/activate && pip install tox`
 - Make your changes
 - Run: `tox -e linting`
 - If tox exits `0`, commit and push. Otherwise, fix the newly introduced style violations
     - `flake8` requires manual fixes
     - `black` will rewrite the violations automatically, however the files are unstaged and should be staged again
     - `isort` will rewrite the violations automatically, however the files are unstaged and should be staged again
 - Submit a Pull Request