WebDriver for logging into Twitter
No real reason for choosing Twitter apart from its cool
.
The code below uses unittest to run. It creates a new WebDriver object and users it to fetch http://twitter.com and submit a username and password. Once the details are added it “clicks” the “Sign In” button to login into Twitter.
#!/usr/bin/env python
import unittest
import logging
from webdriver_firefox.webdriver import FirefoxLauncher
from webdriver_firefox.webdriver import WebDriver
class TwitterTests (unittest.TestCase):
def test_login_twitter(self):
driver = WebDriver()
driver.get("http://twitter.com")
# find our elements - the html on the page with same ids
username_element = driver.find_element_by_id('username')
password_element = driver.find_element_by_id('password')
# use this to toggle the remember me box
remember_me_element = driver.find_element_by_id('remember')
# type into the boxes
username_element.send_keys('yourusername')
password_element.send_keys('yourpassword')
remember_me_element.toggle()
# click Sign In and we should be logged in
driver.find_element_by_id('signin_submit').click()
# check that the title of the page is correct to see if we logged in
self.assertEqual(driver.get_title(), 'Twitter / Home')
# Extract from the html using xpath to find username and updates of the people on the screen
updates = driver.find_elements_by_xpath("//span[@class='entry-content']");
user = driver.find_elements_by_xpath("//a[@class='screen-name']");
# display in the terminal the name and the update
for i,update in enumerate(updates):
print user[i].get_text() + ": " +update.get_text()
# uncomment the following to close the window and finish
#driver.quit()
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
unittest.main()
The docs are not great for WebDriver but reading the source is pretty simple. Being able to mentally parse Java to Python is also a big advantage!

