'send_keys' simulates keyboard inputs, you can enter text as you are typing in keyboard. You can also input special keys like RETURN, F1, F2, ALT etc.. Special keys can be send using Keys class imported from selenium.webdriver.common.keys:
Let us write small test code to Automate the following steps
Code:
#!/bin/python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#create instance for Firefox driver
driver = webdriver.Firefox()
#Open Google.com website
driver.get("http://www.google.com")
#assertion
assert "Google" in driver.title
#Enter text in the input field
search_input = driver.find_element_by_id("lst-ib")
search_input.send_keys("Selenium")
search_input.send_keys(Keys.RETURN)
#assertion
assert "Selenium" in driver.title
#close the browser
driver.quit()
I hope most of the code is self explanatory except find_by_element_id which is used to locate the
element by unique ID.
Let us see how to use Browser developer tools to inspect an Element. If you press F12 in Chrome/Firefox, it will open 'Developer Tools', which has many features. But, let us limit our self to find an element properties.
From the 'Developer Tool' which usually opens in the bottom of the page, click on 'Inspect Element' button and place it on the element (in our case Input field) to get the properties. Look at the following screenshot.
Thursday, April 30, 2015
Input text using 'Send_Keys' in Selenium
How to Install Python and Selenium in Windows?
Step 1: Install Python 3.4 using the MSI available in python.org download page.
Step 2: Start a command prompt using the cmd.exe program and run the pip command as given below to install selenium.
C:\Python34\Scripts\pip.exe install selenium
Step 3: Now you can run your test scripts using Python. For example, if you have created a Selenium based script and saved it inside C:\my_selenium_script.py, you can run it like this:
C:\Python34\python.exe C:\my_selenium_script.py
Wednesday, April 29, 2015
selenium.common.exceptions.WebDriverException: Message: f.QueryInterface is not a function
browser.get('google.com')
&
browser.get('www.google.com')
while trying to execute the above statement, I see the following error
browser.get('google.com')
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 187, in get
self.execute(Command.GET, {'url': url})
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 175, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 166, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: f.QueryInterface is not a function
If you look at the line self.execute(Command.GET, {'url': url}) the statement says GET method accepts the URL
So, selenium throws error if the URL is not in the proper format. URL should contain http/https and www (Ex: "http://www.google.com")
The following code works:
browser.get("http://www.google.com")
What is Selenium?
Key features include:
Sample python program using selenium web driver
I just want to automate the following manual test steps:
Code:
#!/bin/python
# Import Selenium webdriver module
from selenium import webdriver
#Initiate FireFox webdriver
browser = webdriver.Firefox()
#Load the webpage in FireFox browser
browser.get('https://www.google.com')
#debug statement
print "Page Title is: %s" %browser.title
#Assert by Page title
assert 'Google' in browser.title
#Close the browser
browser.quit()
Code Explanation:
"from selenium import webdriver" statement imports webdriver form Selenium module.
'webdriver.Firefox()' load FireFox driver.
'browser.get()' loads the specified url in the browser. Note that 'browser' is the object name that we have given.
'assert <A> in <B>" is python statement which checks if the A is listed in B. Here we check if page title contains the text 'Google'.
Comparison is case sensitive. e.g: Assume that the Page title is "Google Search Engine". when we call the assert statement, python check if page title contains the text 'Google'.
The following statement will fail as the comparison is case sensitive
assert 'google' in browser.title
How to Install Python and Selenium in Linux (Ubuntu)?
To install Selenium means to set up a project in a development so you can write a program using Selenium.
Supported Python Versions:
pip is a package management system used to install and manage software packages written in Python. You can install it by typing:
pip install -U selenium
Alternately, you can download the source distribution from PyPI (e.g. selenium-2.45.tar.gz), unarchive it, and run:
python setup.py install