def test_invalid_credentials(self): driver = helium.start_chrome('https://goantifraud.com/manager', headless=True) helium.write(TEST_DATA['invalid_credentials']['log'], into='login') helium.write(TEST_DATA['invalid_credentials']['pass'], into='password') helium.press(helium.ENTER) check = helium.Text('Login or password is incorrect').value helium.kill_browser() self.assertEqual(check, 'Login or password is incorrect')
def main(dict_classes, schedule_sheet, hours_list, cells_list, days_list, credentials): take() start_chrome("google.com") # login into the Google account if credentials[0] == "ita\n": go_to( "https://accounts.google.com/signin/v2/identifier?service=classroom&passive=1209600&continue=https%3A%2F%2Fclassroom.google.com%2Fu%2F0%2Fh%3Fhl%3Dit&followup=https%3A%2F%2Fclassroom.google.com%2Fu%2F0%2Fh%3Fhl%3Dit&hl=it&flowName=GlifWebSignIn&flowEntry=ServiceLogin" ) write( credentials[1].replace("\n", ""), into="Indirizzo email o numero di telefono", ) press(ENTER) write(credentials[2], into="Inserisci la password") press(ENTER) elif credentials[0] == "eng\n,": go_to( "https://accounts.google.com/signin/v2/identifier?service=classroom&passive=1209600&continue=https%3A%2F%2Fclassroom.google.com%2Fu%2F0%2Fh%3Fhl%3Dit&followup=https%3A%2F%2Fclassroom.google.com%2Fu%2F0%2Fh%3Fhl%3Dit&hl=it&flowName=GlifWebSignIn&flowEntry=ServiceLogin" ) write(credentials[1].replace("\n", ""), into="Email or phone") press(ENTER) write(credentials[2], into="Enter your password") press(ENTER) else: print(colorama.Fore.RED + colorama.Style.BRIGHT + "\n\nThe language is not supported (ita-eng)") while A == 0: k = giorno(days_list) materia = ora(hours_list, cells_list, k, schedule_sheet) meet(materia, dict_classes, k, credentials)
def getDemons(name): list1 = [] list0 = [] start_chrome('https://pointercrate.com/demonlist/') press(END) press(PAGE_UP) click('Open the stats viewer!') write(name, into='Enter to search...') click(name) time.sleep(1) main_is_empty = 1 extended_is_empty = 1 mainverifs_is_empty = 1 extendedverifs_is_empty = 1 for x in range(75): counter = x + 1 if main_is_empty: mainlist = find_all(S('//*[@id="beaten"]/b[%d]/a' % (counter))) if extended_is_empty: extendedlist = find_all( S('//*[@id="beaten"]/span[%d]/a' % (counter))) if mainverifs_is_empty: verifications_main = find_all( S('//*[@id="verified"]/b[%d]/a' % (counter))) if extendedverifs_is_empty: verifications_extended = find_all( S('//*[@id="verified"]/span[%d]/a' % (counter))) if mainlist == []: main_is_empty = 0 if extendedlist == []: extended_is_empty = 0 if verifications_main == []: mainverifs_is_empty = 0 if verifications_extended == []: extendedverifs_is_empty = 0 list0.append(mainlist) list0.append(extendedlist) list0.append(verifications_main) list0.append(verifications_extended) list0 = [element for element in list0 if element != []] for demon in list0: demon = str(demon) start = [m.start() for m in re.finditer(">", demon)][0] end = [m.start() for m in re.finditer("<", demon)][1] demon = demon[(start + 1):end] list1.append(demon) kill_browser() return list1
def balance_kasbon(mode, project=None): wait('Report Balancing') click('Edit') for n in range(len(driver.find_elements_by_name('to_pay'))): if (mode == GROSSUP or mode == LABOUR) and (project[0] != 'K'): driver.find_elements_by_css_selector("td:nth-child(4)")[n].click() sleep(1.5) write('6100-010') sleep(1.5) press(Keys.ENTER) driver.find_elements_by_css_selector("td:nth-child(9)")[n].click() sleep(1.5) write(driver.find_elements_by_name('to_pay')[n].text) if (mode != BALANCE_RECEIVABLE and mode != BALANCE_PAYABLE and mode != BALANCE): click('Save') wait('Edit') click('Report Balancing') wait('Kasbon Progress') entry(DATE) click('OK') wait('Post Balance') click('Post Balance') wait('Kasbon Progress') entry(DATE) entry(BANK) if (mode == BALANCE_RECEIVABLE): entry(DIFF_ACCOUNT,'1150-999') elif (mode == BALANCE_PAYABLE): entry(DIFF_ACCOUNT,'2170-009') elif (mode == BALANCE): try: entry(DIFF_ACCOUNT,'1112-101') except: pass click('OK')
def test_press_single_character(self): press('a') self.assertEqual('a', TextField('Autofocus text field').value)
def test_press_shift_plus_lower_case_character(self): press(SHIFT + 'a') self.assertEqual('A', TextField('Autofocus text field').value)
def test_press_upper_case_character(self): press('A') self.assertEqual('A', TextField('Autofocus text field').value)
import helium # 比较适合新手的自动化库 from time import sleep home_url = 'https://mail.163.com/' # 网站主地址 user_name = 'luobomc' # 登陆用户名 password = '******' # 密码 driver = helium.start_chrome(home_url) # 打开浏览器 并且打开home_url地址页面 sleep(5) # 睡眠5s等待页面加载 helium.write(user_name, helium.TextField('邮箱帐号或手机号码')) # 锁定'邮箱账号或手机号码'并且锁定 然后传入用户名 sleep(2) # 睡眠2秒 helium.write(password, helium.TextField('输入密码')) # 锁定密码输入框并且输入 helium.press(helium.ENTER) # 模拟按回车 登录 sleep(5) # 睡眠5秒等待页面刷新 helium.click(helium.Text('收 信')) # 点击收信按钮 查看邮件 helium.kill_browser() # 关闭浏览器
def connect_to_local_runtime(user_choice): try: # import chromedriver_binary if user_choice == "ClointFusion Labs (Public)": colab_url = "https://accounts.google.com/signin/v2/identifier?authuser=0&hl=en&continue=https://colab.research.google.com/github/ClointFusion/ClointFusion/blob/master/ClointFusion_Labs.ipynb" #https://colab.research.google.com/github/ClointFusion/ClointFusion/blob/master/ClointFusion_Labs.ipynb" # colab_url = "https://colab.research.google.com/github/ClointFusion/ClointFusion/blob/master/ClointFusion_Labs.ipynb" # elif user_choice == "ClointFusion Lite (Interns Only)": # #Extract encrypted version of ClointFusion_Lite to a specific folder and in Colab import that folder # colab_url = 'https://accounts.google.com/signin/v2/identifier?authuser=0&hl=en&continue=https://colab.research.google.com/drive/11MvoQfNFXJqlXKcXV1LBVUE98Ks48M_a' elif user_choice == "ClointFusion Starter (Hackathon)": colab_url = 'https://accounts.google.com/signin/v2/identifier?authuser=0&hl=en&continue=https://colab.research.google.com/drive/1G9mh58z8AbWqBit2TC4Wgg6p_eHPvUJB' user_data_path = "C:\\Users\\{}\\AppData\\Local\\Google\\Chrome\\User Data".format(os.getlogin()) modify_file_as_text(user_data_path + '\\Default\\Preferences', 'crashed', 'false') options = Options() options.add_argument("--start-maximized") options.add_experimental_option('excludeSwitches', ['enable-logging']) if os_name == "windows": options.add_argument("user-data-dir=C:\\Users\\{}\\AppData\\Local\\Google\\Chrome\\User Data".format(os.getlogin())) elif os_name == "darwin": options.add_argument("user-data-dir=/Users/{}/Library/Application/Support/Google/Chrome/User Data".format(os.getlogin())) options.add_argument(f"profile-directory=Default") browser_driver = webdriver.Chrome(ChromeDriverManager().install(), options=options) browser.set_driver(browser_driver) browser.go_to(colab_url) chrome = gw.getWindowsWithTitle('Google Chrome')[0] chrome.activate() # pg.doubleClick(pg.size()[0]/2,pg.size()[1]/2) # kb.press_and_release('esc') # kb.press_and_release('esc') try: browser.wait_until(browser.Text("Code").exists,timeout_secs=6) except :#selenium_wrappers.common.exceptions.TimeoutException: try: browser.click(email) except: browser.write(email, into='Email or phone') browser.click('Next') time.sleep(0.5) browser.write(passwd, into='Enter your password') browser.click('Next') time.sleep(0.5) browser.wait_until(browser.Text("Code").exists,timeout_secs=240) # kb.press_and_release('esc') # time.sleep(0.2) # pg.press(ESCAPE) # time.sleep(0.2) # press(ESCAPE) # time.sleep(0.2) if FIRST_TIME: #create short-cut browser.press(browser.CONTROL + 'mh') time.sleep(1) v = S("//input[@id='pref_shortcut_connectLocal']") browser.write('',v) browser.press(browser.CONTROL + '1') time.sleep(0.5) browser.click("SAVE") time.sleep(1) #use short-cut browser.press(browser.CONTROL + '1') time.sleep(1) # pg.alert("HKHR") pg.doubleClick(pg.size()[0]/2,pg.size()[1]/2) time.sleep(1) if FIRST_TIME: # kb.press_and_release('SHIFT+TAB') pg.hotkey('SHIFT', 'TAB') time.sleep(0.5) # kb.press_and_release('SHIFT+TAB') pg.hotkey('SHIFT', 'TAB') time.sleep(0.5) # kb.press_and_release('SHIFT+TAB') pg.hotkey('SHIFT', 'TAB') time.sleep(0.5) pg.write("http://localhost:8888") # kb.write("http://localhost:8888") time.sleep(2) # click("CONNECT") # kb.press_and_release('TAB') pg.hotkey('TAB') time.sleep(0.5) # pg.alert(1) # kb.press_and_release('TAB') pg.hotkey('TAB') time.sleep(0.5) # pg.alert(2) else: # kb.press_and_release('SHIFT+TAB') pg.hotkey('SHIFT', 'TAB') time.sleep(0.5) browser.press(browser.ENTER) time.sleep(2) # try: # img = "Restore_Bubble.PNG" # pos = pg.locateOnScreen(img, confidence=0.8) #region= # pg.alert(pos) # pg.click(*pos) # except: # pass pg.alert("Ready ! Google Colab is now connected with your Local Runtime.\n\nPlease click 'OK' & you are all set to work on ClointFusion Colabs...") except Exception as ex: print("Error in connect_to_local_runtime="+str(ex)) exc_type, exc_value, exc_tb = sys.exc_info() pg.alert(traceback.format_exception(exc_type, exc_value, exc_tb,limit=None, chain=True)) pg.alert("Error in connect_to_local_runtime="+str(ex)) connect_to_local_runtime()
def test_press_with_open_alert_raises_exception(self): with self.assertRaises(UnexpectedAlertPresentException) as cm: press(ENTER) msg = self._get_unhandled_alert_exception_msg(cm.exception) self.assertEqual(self.UNEXPECTED_ALERT_PRESENT_EXCEPTION_MSG, msg)
def search_helium_repository(): """HeliumのGitHubリポジトリをGoogle検索して移動する""" go_to("google.com") write("helium selenium github") press(ENTER) click("Selenium-python but lighter: Helium - GitHub")
def print_kasbon(mode, partner, project, company, TAX=False): wait('Entries') try: if (mode == CASHOUT_PAYABLE or mode == REIMBURSE_PAYABLE or mode == BALANCE_RECEIVABLE or mode == BALANCE_PAYABLE): if mode == CASHOUT_PAYABLE: nominal = driver.find_element_by_name('pay_total').text elif mode == REIMBURSE_PAYABLE: nominal = driver.find_element_by_name('realize_total').text else: nominal = driver.find_element_by_name('difference').text nominal = abs(int(nominal[:-3].replace(',',''))) click('Entries') wait('Journal Entry') click(DATE) wait('Accounting Documents') click(JOURNAL) wait('Reference') except: wait('Reverse Entry') label = driver.find_element_by_name('ref').text if (mode == BALANCE_RECEIVABLE or mode == BALANCE_PAYABLE): update_entries(mode, partner, label, project, nominal) elif ((mode != REIMBURSE or entries) or (mode != CASHOUT_PAYABLE or mode != CASHOUT and TAX) or (mode != BALANCE)): if ((mode == LABOUR or mode == SALARY) and (not (project in entries)) or ((mode == REIMBURSE) and (not entries) and (not TAX)) or (mode == BALANCE)): pass else: click('Edit') click('Cancel Entry') wait('Post') wait('Add an Item') try: if (JOURNAL == 'BOK'): if (company == 'PT SUA Jkt'): click('01-1112-113') # OCBC: XXXX-109 elif (company == 'PT SUA Sby'): click('02-1112-113') elif (JOURNAL == 'BCK'): if (company == 'PT SUA Jkt'): click('01-1112-101') elif (company == 'PT SUA Sby'): click('02-1112-101') if (mode == CASHOUT): entry(PROJECT, project) elif (mode == REIMBURSE_PAYABLE or mode == CASHOUT_PAYABLE): entry(ACCOUNT, '2170-009') if (mode == CASHOUT_PAYABLE): entry(PROJECT, project) update_entries(BALANCE_PAYABLE, partner, label, project, nominal) elif (mode == LABOUR or mode == SALARY): entry(NOMINAL, '0') press(Keys.TAB) write(entries[project][-1]) auto_entries(project) elif (mode == GROSSUP): entry(ACCOUNT, '2133-001') elif (mode == BPJS or mode == OTHERS): if (mode == BPJS): # entry(ACCOUNT, '1121-001') # Piutang JK entry(ACCOUNT, '2170-009') # Hutang L entry(PARTNER, 'GUNAKARYANA') entry(LABEL, DESC) entry(PROJECT ,'HO-21-0') wait('Cancel Entry') click('Save') elif ((mode == CASHOUT or mode == REIMBURSE or mode == BALANCE) and entries) or TAX: return else: click('Post') wait('Cancel Entry') click('Save') except: wait('Edit') if ((mode != GROSSUP and mode != LABOUR) or company == 'PT SUA Sby'): wait('Print') click('Print') click('Journal Entries') print(entries) wait('Post')
def auto_entries(project=None, mode=False, entries=entries): """ To Automate Entry Process """ if (not mode): for n in range(len(entries[project])): try: if (((entries[project][n] != '0') and n != (len(entries[project])-1)) and (project != 'account' and project != 'description' and project != 'partner')): click('Add an item') wait('Discard') entry(ACCOUNT, entries['account'][n]) if (entries['partner'][n] != '0'): entry(PARTNER, entries['partner'][n]) entry(LABEL, entries['description'][n]) entry(PROJECT, project) if (int(entries[project][n]) < 0): entry(NOMINAL, str(entries[project][n])[1:]) press(Keys.TAB) write('0') elif (int(entries[project][n]) > 0): entry(NOMINAL, '0') press(Keys.TAB) write(entries[project][n]) except: break else: for n in entries: click('Add an item') wait('Discard') entry(ACCOUNT, entries[n][0]) entry(PARTNER, entries[n][1]) entry(LABEL, entries[n][2]) entry(PROJECT, entries[n][3]) if (int(entries[n][4]) < 0): entry(NOMINAL, str(entries[n][4])[1:]) press(Keys.TAB) write('0') elif (int(entries[n][4]) > 0): entry(NOMINAL,'0') press(Keys.TAB) write(entries[n][4]) entries.clear() click('Post') wait('Cancel Entry') try: click('Save') except: wait('Edit') click('Print') click('Journal Entries')