Advertisement
lexquarkie

test_3

Sep 30th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.85 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  3. from selenium.webdriver.common.by import By
  4.  
  5. import logging
  6. from copy import copy
  7.  
  8. class TestRunner(object):
  9.  
  10.     def __init__(self, browser, domain, **kwargs):        
  11.         logging.root.setLevel(logging.INFO)
  12.         logging.root.addHandler(logging.StreamHandler())
  13.        
  14.         if admindata in self.
  15.  
  16.         self.logger = logging.getLogger("test")
  17.         if browser == "CHROME":
  18.             self.caps = copy(DesiredCapabilities.CHROME)
  19.         elif browser == "FIREFOX":
  20.             self.caps = copy(DesiredCapabilities.FIREFOX)
  21.         self.caps['screenResolution'] =  '1600x900x24'
  22.         self.driver = webdriver.Remote(
  23.             command_executor='http://localhost:4444/wd/hub',
  24.             desired_capabilities=self.caps)
  25.         self.domain = domain
  26.  
  27.  
  28.     def log(self, message):
  29.         self.logger.info(message)
  30.  
  31.     def go(self, url):
  32.         self.driver.get(self.domain + url)
  33.  
  34.     def scr(self, name):
  35.         filename = 'screenshots/' + name +'.png'
  36.         try:
  37.             self.driver.save_screenshot(filename)
  38.             log('Screenshot saved as %s' % filename)
  39.         except:
  40.             BaseException
  41.  
  42.     def by_link_text(self, expr):
  43.         return self.driver.find_element(By.LINK_TEXT, expr)
  44.  
  45.     def by_xpath(self, expr):
  46.         return self.driver.find_element(By.XPATH, expr)
  47.  
  48.     def by_name(self, expr):
  49.         return self.driver.find_element(By.NAME, expr)    
  50.  
  51.     def by_css(self, expr):
  52.         return self.driver.find_element(By.CSS_SELECTOR, expr)
  53.  
  54.     def by_id(self, expr):
  55.         return self.driver.find_element(By.ID, expr)
  56.  
  57.     def by_class_name(self, expr):
  58.         return self.driver.find_element(By.CLASS_NAME, expr)
  59.  
  60.     def wait(self, time):
  61.         self.driver.implicitly_wait(time)
  62.  
  63.     def login_to_admin(self):
  64.         if not self.admindata or not 'password' in self.admindata.keys():
  65.             raise UserWarning('no admin credentials')
  66.             return None
  67.         go("/admin/")
  68.         wait(.3)        
  69.         by_name("username").clear()
  70.         by_name("username").send_keys(login)
  71.         by_name("password").clear()
  72.         by_name("password").send_keys(password)
  73.         by_xpath("/html/body/div[1]/div/div/div/div[2]/form/a").click()
  74.         h3_title = by_xpath('/html/body/div[4]/div[1]/div/div/div/h3').text
  75.         assert 'Панель управления' in h3_title
  76.         log('"%s" passed OK \n' % inspect.getframeinfo(inspect.currentframe())[2])
  77.  
  78.     def is_logined_as_admin(self):
  79.         self.go('/admin/')
  80.         if 'Логин' in self.driver.title:
  81.             return False
  82.         elif 'Панель управления' in self.driver.title:
  83.             return True
  84.         else:
  85.             return 'UNKNOWN' # raise Exception
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement