Ejemplo n.º 1
0
 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')
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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')
Ejemplo n.º 5
0
 def test_press_single_character(self):
     press('a')
     self.assertEqual('a', TextField('Autofocus text field').value)
Ejemplo n.º 6
0
 def test_press_shift_plus_lower_case_character(self):
     press(SHIFT + 'a')
     self.assertEqual('A', TextField('Autofocus text field').value)
Ejemplo n.º 7
0
 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()  # 关闭浏览器
Ejemplo n.º 9
0
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()
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
def search_helium_repository():
    """HeliumのGitHubリポジトリをGoogle検索して移動する"""
    go_to("google.com")
    write("helium selenium github")
    press(ENTER)
    click("Selenium-python but lighter: Helium - GitHub")
Ejemplo n.º 12
0
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')
Ejemplo n.º 13
0
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')