You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
1.6 KiB

from django.test import TestCase
from selenium import webdriver
from selenium.webdriver.common.by import By
from pyvirtualdisplay import Display
from project.utils.selenium_utils import SeleniumExtensions as SE
from django.conf import settings
class SeleniumTestCase(TestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.display = Display(visible=0, size=(1280, 1024))
cls.display.start()
cls.driver = webdriver.Chrome()
@classmethod
def tearDownClass(cls):
cls.driver.close()
cls.display.stop()
super().tearDownClass()
def get_url(self, url):
return 'http://%s%s' % (settings.MAIN_HOST, url)
def wait_elem_xpath(self, xpath, inside_el=None, wait_time=10):
return SE.wait_elem(self.driver, (By.XPATH, xpath), inside_el, wait_time)
def wait_elems_xpath(self, xpath, inside_el=None, wait_time=10):
return SE.wait_elems(self.driver, (By.XPATH, xpath), inside_el, wait_time)
def wait_elem_css(self, selector, inside_el=None, wait_time=10):
return SE.wait_elem(self.driver, (By.CSS_SELECTOR, selector), inside_el, wait_time)
def wait_elems_css(self, selector, inside_el=None, wait_time=10):
return SE.wait_elems(self.driver, (By.CSS_SELECTOR, selector), inside_el, wait_time)
def wait_elem_name(self, name, inside_el=None, wait_time=10):
return SE.wait_elem(self.driver, (By.NAME, name), inside_el, wait_time)
def wait_elems_name(self, name, inside_el=None, wait_time=10):
return SE.wait_elems(self.driver, (By.NAME, name), inside_el, wait_time)