-
-
Save hugs/830011 to your computer and use it in GitHub Desktop.
# 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() |
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?
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 ?
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
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')
This is indeed very beautiful. Thank you!
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'
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?
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???
if after clicking submit ,i am going to a link,so how do i write ?
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
How to find drop down list in python selenium
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()
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()
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/
self.driver = webdriver.Remote(command_executor='http://192.168.1.109:3001/hub', desired_capabilities={'browserName': 'iphone'})
this should make it work...