def add_class(self, locator, class_name): logger.info("Add [%s] class to element [%s]" % (locator, class_name)) time.sleep( 1.5) # Wait for execute all jquery requests after click on element self.driver.execute_script( "return document.querySelector('%s').classList.add('%s')" % (locator, class_name))
def refresh_page(self): logger.info("Refresh page") self.driver.refresh() while self.is_alert_present(): self.driver.switch_to.alert.dismiss() self.driver.refresh() time.sleep(.3)
def get_detail(subdomain, email, *, api_key, server): student = api.get_student_details(subdomain, email, api_key=api_key, server=server) if email in student.values(): return student else: logger.info(f"Student with email: {email} not found in subdomain: {subdomain}") raise StudentNotFoundException(f"subdomain = {subdomain}, email = {email}")
def is_alert_present(self): try: alert = self.driver.switch_to.alert logger.info("Alert is present [%s]" % alert) return True except NoAlertPresentException: logger.info("No alert") return False
def create(subdomain, email, *args, api_key, server): student_detail = subdomain, email, *args logger.info(f"Create user on the {subdomain}. \nDetails: {student_detail}") try: return api.create_student(*student_detail, api_key=api_key, server=server) except ReadTimeout: logger.info(f"Failed to create student in 10 seconds: {student_detail}") raise StudentNotCreatedException(f"Failed to create student in 10 seconds: {student_detail}")
def delete_all(subdomain, *, api_key, server): logger.info(f"Delete all students from {subdomain}") end_time = time.time() + REQUEST_TIME_LIMIT while api.get_students_list(subdomain, api_key=api_key, server=server): for student in api.get_students_list(subdomain,api_key=api_key, server=server): Students().delete_by_email(subdomain, student["email"], api_key=api_key, server=server) if time.time() > end_time: logger.info(f"Failed to delete all students in subdomain: {subdomain}") raise TimeoutError(f"Failed to delete all students students:in subdomain: {subdomain}")
def remove_all_emails(): logger.info("Remove all emails") box.login(imap_user, imap_pass) box.select("Inbox") typ, data = box.search(None, "ALL") for num in data[0].split(): box.store(num, "+FLAGS", "\\Deleted") box.expunge() box.close() box.logout()
def wait_for_payment_will_done(old_balance): end_time = time.time() + REQUEST_TIME_LIMIT new_balance = Stripe().get_full_balance() while old_balance >= new_balance: new_balance = Stripe().get_full_balance() if time.time() > end_time: logger.info( f"Stripe balance was not changed. Stripe user: {api.get_stripe_info().email}" ) raise TimeoutError( f"Stripe balance was not changed. Stripe user: {api.get_stripe_info().email}" )
def wait_for_created(subdomain, email, *args, api_key, server): end_time = time.time() + REQUEST_TIME_LIMIT if args: student = api.get_student_details(subdomain, email, api_key=api_key, server=server) while True: result = [email in student.values()] for arg in args: result.append(arg in student.values()) student = api.get_student_details(subdomain, email, api_key=api_key, server=server) if all(result): break if time.time() > end_time: logger.info(f"Failed to create student: {email} in subdomain: {subdomain}") raise TimeoutError(f"Failed to create student: subdomain = {subdomain}, email = {email}") else: student = api.get_student_details(subdomain, email, api_key=api_key, server=server) while email not in student.values(): student = api.get_student_details(subdomain, email, api_key=api_key, server=server) if time.time() > end_time: logger.info(f"Failed to create student: {email} in subdomain: {subdomain}") raise TimeoutError(f"Failed to create student: subdomain = {subdomain}, email = {email}")
def delete_by_email(subdomain, email, *, api_key, server): logger.info(f"Delete user by email: {subdomain}, {email}") end_time = time.time() + REQUEST_TIME_LIMIT student = api.get_student_details(subdomain, email, api_key=api_key, server=server) if email in student.values(): api.delete_student(subdomain, email, api_key=api_key, server=server) while email in student.values(): student = api.get_student_details(subdomain, email, api_key=api_key, server=server) if time.time() > end_time: logger.info(f"Failed to delete student: {email} in subdomain: {subdomain}") raise TimeoutError(f"Failed to delete student: subdomain = {subdomain}, email = {email}") else: logger.info(f"Student with email: {email} not found in subdomain: {subdomain}") raise StudentNotFoundException(f"subdomain = {subdomain}, email = {email}")
def switch_tab(self, tab_number): logger.info(f"Switch to {tab_number} tab") self.driver.switch_to.window(self.driver.window_handles[tab_number])
def clear(self): logger.info("Clear all storage") self.driver.execute_script("window.localStorage.clear();")
def scroll_to_top_page(self): logger.info("Scroll to top page") self.action.send_keys_to_element( self.driver.find_element_by_tag_name('body'), Keys.CONTROL + Keys.HOME).perform()
def get_list(subdomain, *, api_key, server): try: return api.get_students_list(subdomain, api_key=api_key, server=server) except ReadTimeout: logger.info(f"Failed to get students list for: {subdomain}") raise StudentNotFoundException(f"Failed to get students list for: {subdomain} in 10 seconds")
def open(self, url): logger.info("Open page: %s" % url) self.driver.get(url)
def dismiss_alert(self): try: WebDriverWait(self.driver, 3).until(EC.alert_is_present()) self.driver.switch_to.alert.dismiss() except TimeoutException: logger.info("No alert")
def switch_to_default_content(self): logger.info("Switch to default content") self.driver.switch_to.default_content()