Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
- from selenium.webdriver.common.by import By
- import logging
- from copy import copy
- class TestRunner(object):
- def __init__(self, browser, domain, **kwargs):
- logging.root.setLevel(logging.INFO)
- logging.root.addHandler(logging.StreamHandler())
- if admindata in self.
- self.logger = logging.getLogger("test")
- if browser == "CHROME":
- self.caps = copy(DesiredCapabilities.CHROME)
- elif browser == "FIREFOX":
- self.caps = copy(DesiredCapabilities.FIREFOX)
- self.caps['screenResolution'] = '1600x900x24'
- self.driver = webdriver.Remote(
- command_executor='http://localhost:4444/wd/hub',
- desired_capabilities=self.caps)
- self.domain = domain
- def log(self, message):
- self.logger.info(message)
- def go(self, url):
- self.driver.get(self.domain + url)
- def scr(self, name):
- filename = 'screenshots/' + name +'.png'
- try:
- self.driver.save_screenshot(filename)
- log('Screenshot saved as %s' % filename)
- except:
- BaseException
- def by_link_text(self, expr):
- return self.driver.find_element(By.LINK_TEXT, expr)
- def by_xpath(self, expr):
- return self.driver.find_element(By.XPATH, expr)
- def by_name(self, expr):
- return self.driver.find_element(By.NAME, expr)
- def by_css(self, expr):
- return self.driver.find_element(By.CSS_SELECTOR, expr)
- def by_id(self, expr):
- return self.driver.find_element(By.ID, expr)
- def by_class_name(self, expr):
- return self.driver.find_element(By.CLASS_NAME, expr)
- def wait(self, time):
- self.driver.implicitly_wait(time)
- def login_to_admin(self):
- if not self.admindata or not 'password' in self.admindata.keys():
- raise UserWarning('no admin credentials')
- return None
- go("/admin/")
- wait(.3)
- by_name("username").clear()
- by_name("username").send_keys(login)
- by_name("password").clear()
- by_name("password").send_keys(password)
- by_xpath("/html/body/div[1]/div/div/div/div[2]/form/a").click()
- h3_title = by_xpath('/html/body/div[4]/div[1]/div/div/div/h3').text
- assert 'Панель управления' in h3_title
- log('"%s" passed OK \n' % inspect.getframeinfo(inspect.currentframe())[2])
- def is_logined_as_admin(self):
- self.go('/admin/')
- if 'Логин' in self.driver.title:
- return False
- elif 'Панель управления' in self.driver.title:
- return True
- else:
- return 'UNKNOWN' # raise Exception
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement