Skip to content

Instantly share code, notes, and snippets.

@dino-su
Created November 14, 2014 15:27
Show Gist options
  • Save dino-su/d03ad9253055b9499959 to your computer and use it in GitHub Desktop.
Save dino-su/d03ad9253055b9499959 to your computer and use it in GitHub Desktop.
Page Object Model in Python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
class googlepage(object):
def __init__(self, browser):
self._browser = browser
self._url = 'https://google.com'
self.search_locator = 'input#lst-ib'
@property
def is_loaded(self):
WebDriverWait(self._browser, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, self.search_locator)))
return True
@property
def keyword(self):
input_field = self._browser.find_element_by_css_selector(self.search_locator)
return input_field.get_attribute('value')
def open(self):
self._browser.get(self._url)
def type_search(self, keyword):
input_field = self._browser.find_element_by_css_selector(self.search_locator)
input_field.send_keys(keyword)
def click_submit(self):
input_field = self._browser.find_element_by_css_selector(self.search_locator)
input_field.send_keys(Keys.RETURN)
def search(self, keyword):
self.type_search(keyword)
self.click_submit()
import unittest
from selenium import webdriver
from google_page import googlepage
class GoogleTest(unittest.TestCase):
@classmethod
def setUpClass(self):
self.browser = webdriver.Firefox()
def testSearch(self):
google = googlepage(self.browser)
google.open()
google.search('Hello World')
# verify the keyword
self.assertEqual('Hello World', google.keyword)
@classmethod
def tearDownClass(self):
self.browser.quit()
if __name__ == '__main__':
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment