Created
March 19, 2015 03:16
-
-
Save chintani/05511ab784f35a192039 to your computer and use it in GitHub Desktop.
functional_test.py and the error it produces
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from selenium import webdriver | |
from selenium.webdriver.common.keys import Keys | |
import unittest | |
class NewVisitorTest(unittest.TestCase): # | |
def setUp(self): # | |
self.browser = webdriver.Firefox() | |
self.browser.implicitly_wait(3) | |
def tearDown(self): # | |
self.browser.quit() | |
def test_can_start_a_list_and_retrieve_it_later(self): # | |
# Edith has heard about a cool new online to-do app. She goes | |
# to check out its homepage | |
self.browser.get('http://localhost:8000') | |
# She notices the page title and header mention to-do lists | |
self.assertIn ('To-Do',self.browser.title)# | |
header_text = self.browser.find_element_by_tag_name('h1')#.test | |
self.assertIn('To-Do', header_text) | |
# She is invited to enter a to-do item straight away | |
inputbox = self.browser.find_element_by_id('id_new_items') | |
self.assertEqual( | |
inputbox.get_attribute('placeholder'), | |
'Enter a to-do item' | |
) | |
# She types "Buy peacock feathers" into a text box (Edith's hobby | |
# is tying fly-fishing lures) | |
inputbox.send_keys('Buy peacock feathers') | |
# When she hits enter, the page updates, and now the page lists | |
# "1: Buy peacock feathers" as an item in a to-do list | |
inputbox.send_keys(keys.ENTER) | |
table = self.browser.find_element_by_id('id_list_table') | |
rows = table.find_elements_by_tag_name('tr') | |
self.assertTrue( | |
any(row.text == '1: Buy peacock feathers' for row in rows), | |
"New to-do item did not appear in table" | |
) | |
# There is still a text box inviting her to add another item. She | |
# enters "Use peacock feathers to make a fly" (Edith is very | |
# methodical) | |
self.fail('Finish the test!') # | |
# The page updates again, and now shows both items on her list | |
# Edith wonders whether the site will remember her list. Then she sees | |
# that the site has generated a unique URL for her --there is some | |
# explanatory text to that effect. | |
# She visits that URL -her to-do list is still there. | |
# Satisfied, she goes back to sleep | |
# browser.quit() | |
if __name__ == '__main__': # | |
unittest.main(warnings='ignore') # | |
________________________________________END OF FILE __________________________________________________ | |
chintani@chintani-HP-Mini-110-3000:~/Documents/webapps-projects/superlists$ python3 functional_tests.py | |
E | |
====================================================================== | |
ERROR: test_can_start_a_list_and_retrieve_it_later (__main__.NewVisitorTest) | |
---------------------------------------------------------------------- | |
Traceback (most recent call last): | |
File "functional_tests.py", line 24, in test_can_start_a_list_and_retrieve_it_later | |
self.assertIn('To-Do', header_text) | |
File "/usr/lib/python3.4/unittest/case.py", line 1050, in assertIn | |
if member not in container: | |
TypeError: argument of type 'WebElement' is not iterable | |
---------------------------------------------------------------------- | |
Ran 1 test in 20.968s | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment