from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import unittest class NewVisitorTest(unittest.TestCase): def setUp(self): self.browser = webdriver.Firefox() def tearDown(self): self.browser.quit() def test_can_start_a_todo_list(self): self.browser.get("http://localhost:8000") self.assertIn("To-Do", self.browser.title) header_text = self.browser.find_element(By.TAG_NAME, 'h1').text self.assertIn('To-Do', header_text) inputbox = self.browser.find_element(By.ID, 'id-new-item') self.assertEqual(inputbox.get_attribute('placeholder'), 'Enter a to-do item') inputbox.send_keys('Buy peacock feathers') inputbox.send_keys(Keys.ENTER) time.sleep(1) table = self.browser.find_element(By.ID, 'id-list-table') rows = table.find_elements(By.TAG_NAME, 'tr') self.assertIn('1: Buy peacock feathers', [row.text for row in rows]) inputbox = self.browser.find_element(By.ID, 'id-new-item') inputbox.send_keys('Use peacock feathers to make a fly') inputbox.send_keys(Keys.ENTER) time.sleep(1) table = self.browser.find_element(By.ID, 'id-list-table') rows = table.find_elements(By.TAG_NAME, 'tr') self.assertIn('2: Use peacock feathers to make a fly', [row.text for row in rows]) self.assertIn('1: Buy peacock feathers', [row.text for row in rows]) if __name__ == "__main__": unittest.main()