Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Example code for using the Selenium 2 Python bindings.
# To install the Python client library:
# pip install -U selenium
# Import the Selenium 2 namespace (aka "webdriver")
from selenium import webdriver
# iPhone
driver = webdriver.Remote(browser_name="iphone", command_executor='http://172.24.101.36:3001/hub')
# Android
driver = webdriver.Remote(browser_name="android", command_executor='http://127.0.0.1:8080/hub')
# Google Chrome
driver = webdriver.Chrome()
# Firefox
driver = webdriver.Firefox()
# ------------------------------
# The actual test scenario: Test the codepad.org code execution service.
# Go to codepad.org
driver.get('http://codepad.org')
# Select the Python language option
python_link = driver.find_elements_by_xpath("//input[@name='lang' and @value='Python']")[0]
python_link.click()
# Enter some text!
text_area = driver.find_element_by_id('textarea')
text_area.send_keys("print 'Hello,' + ' World!'")
# Submit the form!
submit_button = driver.find_element_by_name('submit')
submit_button.click()
# Make this an actual test. Isn't Python beautiful?
assert "Hello, World!" in driver.get_page_source()
# Close the browser!
driver.quit()
@santoshssit

This comment has been minimized.

Copy link

commented May 24, 2011

hi i am running on Windows can u please explain me how can i install python client for selenium 2.0 and where i get that

@santoshssit

This comment has been minimized.

Copy link

commented May 24, 2011

Can you please give me the steps to use this ITS very urgent

@hugs

This comment has been minimized.

Copy link
Owner Author

commented May 24, 2011

You can download the latest Python client from http://pypi.python.org/pypi/selenium. In Windows, at a command prompt in a terminal window try: "pip.exe install -U selenium" or "easy_install.exe install -U selenium". If you have trouble, google for how to install Pip or Easy Install.

@troy999

This comment has been minimized.

Copy link

commented Jul 3, 2011

Running Python 2.6.1 I am receiving the following error:

driver = webdriver.Remote(browser_name="iphone", command_executor='http://:3001/hub')
Traceback (most recent call last):
File "", line 1, in
TypeError: init() got an unexpected keyword argument 'browser_name'


Any help would be greatly appreciated...

@ameyspatil

This comment has been minimized.

Copy link

commented Aug 4, 2011

self.driver = webdriver.Remote(command_executor='http://192.168.1.109:3001/hub', desired_capabilities={'browserName': 'iphone'})
this should make it work...

@gingertea

This comment has been minimized.

Copy link

commented Nov 3, 2011

I am on a network behind a proxy. When i run this script, i get a new instance of Firefox with no proxy configured, that obviously fails to connect to any external site. I tried setting http_proxy env variable from shell but that didn't work. On the WebDriver FAQ on code.google.com, i found this Java code:

Proxy proxy = new Proxy();
proxy.setProxyAutoconfigUrl("http://youdomain/config");

// We use firefox as an example here.
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(CapabilityType.PROXY, proxy);

// You could use any webdriver implementation here
WebDriver driver = new FirefoxDriver(capabilities);

How do i translate this to Python?

@ostapel

This comment has been minimized.

Copy link

commented Feb 27, 2012

I have installed all the staff, but after opening FF nothing happens, proxy is OK, but driver.get("http://google.com") does not open page - no actions are performed, just starting page....anybody knows why ?

@martinhbramwell

This comment has been minimized.

Copy link

commented Oct 18, 2012

I gotta say ... I REALLY appreciated stumbling onto this! Thank you!!

I was facing a need to use Selenium on one project and a need to start learning Python for another. Doing both together seemed like a good idea, but I figured I'd need several days to figure out how to do it. Bingo! You got me up and running in 10 minutes! Great!

one small thing though -- "AttributeError: 'WebDriver' object has no attribute 'get_page_source'"

After a quick Google around, I found that this works, instead -- assert "Hello, World!" in driver.page_source

@jollychang

This comment has been minimized.

Copy link

commented Dec 24, 2012

there is some update maybe

from selenium import webdriver
capabilities = webdriver.DesiredCapabilities()
driver = webdriver.Remote(command_executor='http://127.0.0.1:8080/wd/hub', desired_capabilities=capabilities.ANDROID)
driver.get('http://www.douban.com')
@jakeyeung

This comment has been minimized.

Copy link

commented Oct 2, 2013

This is indeed very beautiful. Thank you!

@SureshKL

This comment has been minimized.

Copy link

commented Jul 3, 2014

Worked fine for Chrome and Firefox,
But getting the below ERROR when I run the script for Android on Android 4.1.2 rooted phone.
Traceback (most recent call last):
File "C:/Users/SURESH/Downloads/gist830011-f40c4473d6e73fbc22d0c9ad3ab2d3f6e9f1be70/selenium-examples.py", line 11, in
driver = webdriver.Remote(browser_name="android", command_executor='http://127.0.0.1:8080/hub')
TypeError: init() got an unexpected keyword argument 'browser_name'

@asmuth444

This comment has been minimized.

Copy link

commented Feb 6, 2016

hi i was working on a python script once we use the click function and reach an other page then how can i continue the same process of searching and clicking on the next page?

@sudhir0015

This comment has been minimized.

Copy link

commented Jun 8, 2016

Hi.. When i am trying to execute this script, i am getting error :
Traceback (most recent call last):
File "C:\Python27\selenium\selenium-Example.py", line 42, in
assert "Hello, World!" in driver.get_page_source()
AttributeError: 'WebDriver' object has no attribute 'get_page_source'

How to get over from this error???

@sonampriya404

This comment has been minimized.

Copy link

commented Sep 9, 2016

if after clicking submit ,i am going to a link,so how do i write ?

@ronbarak

This comment has been minimized.

Copy link

commented Nov 4, 2016

After running:

$ Xvfb :99 &
$ export DISPLAY=:99

I made several changes to make the code from GitHub run (on Ubuntu/FireFox).
Following is my changed code:

# To install the Python client library:
# pip install -U selenium

from __future__ import print_function

# Import the Selenium 2 namespace (aka "webdriver")
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

# iPhone
# driver = webdriver.Remote(browser_name="iphone", command_executor='http://172.24.101.36:3001/hub')
# Android
# driver = webdriver.Remote(browser_name="android", command_executor='http://127.0.0.1:8080/hub')
# Google Chrome 
# driver = webdriver.Chrome()

# Firefox 
# driver = webdriver.Firefox()

# per http://stackoverflow.com/questions/37761668/cant-open-browser-with-selenium-after-firefox-update/37765661
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities)

# ------------------------------
# The actual test scenario: Test the codepad.org code execution service.

# Go to codepad.org
driver.get('http://codepad.org')

# Select the Python language option
python_link = driver.find_elements_by_xpath("//input[@name='lang' and @value='Python']")[0]
python_link.click()

# Enter some text!
text_area = driver.find_element_by_id('textarea')
text_area.send_keys("print 'Hello,' + ' World!'")

# Submit the form!
submit_button = driver.find_element_by_name('submit')
submit_button.click()

# Make this an actual test. Isn't Python beautiful?
#assert "Hello, World!" in driver.get_page_source()
html_source = driver.page_source
print ("html_source:",html_source)
hello_in_html = "Hello, World!" in html_source

# Close the browser!
driver.quit()

assert hello_in_html

@subasss

This comment has been minimized.

Copy link

commented Jan 11, 2018

How to find drop down list in python selenium

@skpatro

This comment has been minimized.

Copy link

commented Feb 22, 2018

driver.get("https://skpatro.github.io/demo")
driver.find_element_by_link_text("SignUp Form").click()

select = Select(driver.find_element_by_name("sgender"))
select.select_by_value("male")
print("Selected option " + select.first_selected_option.text)
opts = select.options
print("Available options are")
for opt in opts:
    print(opt.text)
time.sleep(3)
driver.quit()
@aniketmule

This comment has been minimized.

Copy link

commented Apr 25, 2018

Updated the code as I got error with the above example due to change in element name.


# To install the Python client library:
# pip install -U selenium

# Import the Selenium 2 namespace (aka "webdriver")
from selenium import webdriver

# iPhone
driver = webdriver.Remote(browser_name="iphone", command_executor='http://172.24.101.36:3001/hub')

# Android
driver = webdriver.Remote(browser_name="android", command_executor='http://127.0.0.1:8080/hub')

# Google Chrome 
driver = webdriver.Chrome()

# Firefox 
driver = webdriver.Firefox()

# ------------------------------
# The actual test scenario: Test the codepad.org code execution service.

# Go to codepad.org
driver.get('http://codepad.org')

# Select the Python language option
python_link = driver.find_elements_by_xpath("//input[@name='lang' and @value='Python']")[0]
python_link.click()

# Enter some text!
text_area = driver.find_element_by_id('textarea')
text_area.send_keys("print 'Hello,' + ' World!'")

# Submit the form!
submit_button = driver.find_element_by_class_name('g-recaptcha')
submit_button.click()

# Make this an actual test. Isn't Python beautiful?
assert "Hello, World!" in driver.get_page_source()

# Close the browser!
driver.quit()
@ernstki

This comment has been minimized.

Copy link

commented Oct 17, 2018

With the PhantomJS WebDriver being deprecated nowadays, it's handy to know how to use the Chrome WebDriver headless.

Here's how to do that:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('headless')

driver = webdriver.Chrome(chrome_options=options)

Source: https://intoli.com/blog/running-selenium-with-headless-chrome/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.