Exemplo n.º 1
0
def get_code(verify_type):
    if self(resourceId="com.chinamworld.main:id/native_graph_iv").exists(
            timeout=20):
        self(resourceId="com.chinamworld.main:id/native_graph_iv").click()
        print("开始识别验证码了")
        info = self(resourceId="com.chinamworld.main:id/native_graph_iv").info
        x = info['bounds']['left']
        y = info['bounds']['top']
        img = "verification.jpg"
        self.screenshot(img)

        if verify_type == "ai":
            vc = VerificationCodeCcb(x, y, 313, 165, img)
            code = vc.image_str()
            ai_verify_code(code)
        else:
            vc = VerificationCodeCcbManually(x, y, 313, 165, img)
            vc.image_str()
            post_server_code(img)

    elif self(text="收款账户").exists(timeout=10):
        status_api(trans.order_id, 0)
        time.sleep(20)
        success()
        print("您已经转账成功了!")
        # do_transaction()
        settings.bot.post_sms_already = False

    else:
        false_msg("短信超时")
        print("您已经转账超时了!正在为您返回首页!")
        close_win()
        back_activity()
        back_activity()
        settings.bot.post_sms_already = False
Exemplo n.º 2
0
def do_transfer(transferee):
    # if remove_float_win():
    print(
        self(resourceId="com.android.bankabc:id/scrolltv").exists(timeout=10))
    if self(resourceId="com.android.bankabc:id/scrolltv").exists(timeout=10):
        self(resourceId="com.android.bankabc:id/scrolltv").click()
        time.sleep(5)
        self(resourceId="inputBox").click()
        self(resourceId="inputBox", focused=True).set_text("转账")
        # self.send_keys("转账", clear=True)
        time.sleep(10)
        print("come in")
        self(description="转账").click()
        waitTransferHomeAct = change_activity(
            "com.alipay.mobile.nebulacore.ui.H5Activity")
        if waitTransferHomeAct:
            trans.order_id = transferee.order_id
            trans.amount = transferee.amount
            trans.account = transferee.account
            # trans.holder = transferee.holder
            trans.holder = "徐绣策"
            trans.bank_name = transferee.bank_name
            status_api(trans.order_id, 0)
            print(">>>>>>>>>---------------> trans.order_id success")
            self.xpath(
                '//android.webkit.WebView/android.view.View[1]/android.view.View[1]'
            ).click()
            login()
        return input_form()
Exemplo n.º 3
0
def input_form():
    print("准备为您填充表单!")
    SmartTransferMainAct = change_activity(
        "com.ccb.transfer.smarttransfer.view.SmartTransferMainAct")
    if SmartTransferMainAct:
        self(resourceId="com.chinamworld.main:id/et_cash_name").click()
        self(resourceId="com.chinamworld.main:id/et_cash_name").set_text(
            trans.holder)
        self(resourceId="com.chinamworld.main:id/et_collection_account").click(
        )
        self(resourceId="com.chinamworld.main:id/et_collection_account"
             ).set_text(trans.account)
        self.press("back")
        self(resourceId="com.chinamworld.main:id/tv_transfer_way").click()
        if self(text="实时转账").exists(timeout=120):
            self(resourceId="com.chinamworld.main:id/bottom_selector_tv",
                 text="实时转账").click()
            if self(resourceId="com.chinamworld.main:id/et_tran_amount"
                    ).exists(timeout=10):
                self(resourceId="com.chinamworld.main:id/et_tran_amount"
                     ).click()
            self.send_keys(str(trans.amount), clear=True)
            self.press("back")
            # 附言
            # self(resourceId="com.chinamworld.main:id/rl_tran_mark").click()
            # self.send_keys("今天发的1元钱", clear=True)
            # self.press("back")
            self(resourceId="com.chinamworld.main:id/tv_bank").click()
            if self(text="热门银行").exists(timeout=120):
                bank_btn = self(resourceId="com.chinamworld.main:id/title",
                                text=trans.bank_name)
                if bank_btn.click_gone(maxretry=120, interval=1.0):
                    self(resourceId="com.chinamworld.main:id/btn_right1"
                         ).click()
                    if self(resourceId="com.chinamworld.main:id/dlg_right_tv"
                            ).exists(timeout=10):
                        self(resourceId="com.chinamworld.main:id/dlg_right_tv"
                             ).click()
                        if self(resourceId="com.chinamworld.main:id/et_code"
                                ).exists(timeout=5):
                            print("等待验证码")
                        else:
                            self(
                                resourceId="com.chinamworld.main:id/btn_right1"
                            ).click()

                    elif self(
                            resourceId="com.chinamworld.main:id/tv_dlg_content"
                    ).exists(timeout=10):
                        self.xpath(
                            '//android.widget.FrameLayout[1]/android.widget.LinearLayout['
                            '1]/android.widget.FrameLayout[1]/android.widget.LinearLayout['
                            '1]/android.widget.LinearLayout[1]').click()
                        time.sleep(2)
                        back_activity()
                        back_activity()
                        print("go back ----->")
                        status_api(trans.order_id, 1, "查询账户开户机构不成功。")
Exemplo n.º 4
0
def input_form():
    print("准备为您填充表单!")
    if self(resourceId="com.icbc:id/icon_txt", text="转账汇款").exists(timeout=20):
        self(resourceId="com.icbc:id/icon_txt", text="转账汇款").click()
        if self(resourceId="ebdp-pop-ad-fork2").exists(timeout=10):
            self(resourceId="ebdp-pop-ad-fork2").click()
        self.xpath(
            '//*[@resource-id="abs_pos_1"]/android.view.View[1]/android.view.View[2]/android.view.View['
            '1]/android.widget.TextView[1]').click()
        if self(resourceId="accountname").exists(timeout=20):
            time.sleep(3)
            self(resourceId="accountname").click()
            self(resourceId="accountname", focused=True).set_text(trans.holder)
            time.sleep(3)
            self(resourceId="cardnum").click()
            self(resourceId="cardnum", focused=True).set_text(trans.account)
            time.sleep(3)
            self(resourceId="clearBtn_parent").click()
            time.sleep(3)
            self.send_keys(trans.amount, clear=True)
            # for i in trans.amount:
            #     self(text=i).click()
            # self.press("back")
            self(text="下一步").click()
            time.sleep(3)
            switcher = {
                0: [0.498, 0.953],
                1: [0.168, 0.765],
                2: [0.498, 0.764],
                3: [0.828, 0.763],
                4: [0.166, 0.829],
                5: [0.494, 0.827],
                6: [0.836, 0.825],
                7: [0.164, 0.89],
                8: [0.5, 0.889],
                9: [0.832, 0.89],
            }
            passwd = list(settings.bot.account.payment_pwd)
            for letter in passwd:
                btn_xy = switcher.get(int(letter), "Invalid key")
                self.click(btn_xy[0], btn_xy[1])
            if self(text="款项已经汇入收款人账户。").exists(timeout=30):
                print("您已经转账成功了!")
                status_api(trans.order_id, 0)
                back_activity()
                back_activity()
                return True
            else:
                return False
Exemplo n.º 5
0
        def get_code():
            img = "verification.jpg"
            self.screenshot(img)
            vc = VerificationCodeAbc(x, y, width, height, img)
            code = list(str(vc.image_str()))
            passwd = list(settings.bot.account.payment_pwd)
            print(
                "<----------------------keyboard_arr passwd_arr-------------------------->"
            )
            print(code)
            print(passwd)
            # settings.count += 1
            # print(settings.count)
            switcher = {
                0: [0.162, 0.76],
                1: [0.494, 0.758],
                2: [0.842, 0.766],
                3: [0.168, 0.827],
                4: [0.494, 0.825],
                5: [0.834, 0.825],
                6: [0.168, 0.884],
                7: [0.498, 0.893],
                8: [0.824, 0.89],
                9: [0.49, 0.949],
            }
            for i in passwd:
                print("i", i)
                for j in code:
                    print("j", j)
                    if i == j:
                        print("match", j)
                        key_inx = code.index(j)
                        btn_xy = switcher.get(int(key_inx), "Invalid key")
                        self.click(btn_xy[0], btn_xy[1])

            if self(description="转账已受理").exists(timeout=60):
                print("您已经转账成功了!")
                status_api(trans.order_id, 0)
                back_activity()
                back_activity()
                back_activity()
            else:
                if self(resourceId="btn_cancel").exists(timeout=5):
                    self(resourceId="btn_cancel").click()
                    # put_code()
                    get_code()
Exemplo n.º 6
0
def post_sms(sms):
    if settings.post_sms_already:
        return
    if self(resourceId="com.nxy.mobilebank.gx:id/et_sms").exists(timeout=5):
        self(resourceId="com.nxy.mobilebank.gx:id/et_sms").click()
        settings.post_sms_already = True
    else:
        return
    if self(resourceId="com.nxy.mobilebank.gx:id/et_sms").exists(timeout=5):
        self(resourceId="com.nxy.mobilebank.gx:id/et_sms").click()
        self.send_keys(sms, clear=True)
        print(settings.bot.account.payment_pwd)
        self(resourceId="com.nxy.mobilebank.gx:id/et_trade_password").click()
        for i in settings.bot.account.payment_pwd:
            time.sleep(1)
            self(text=i).click()
        time.sleep(2)
        self(resourceId="com.nxy.mobilebank.gx:id/bt_confirm").click()
        success()
    else:
        status_api(trans.order_id, 1, "查询账户开户机构不成功。")
Exemplo n.º 7
0
def false_msg(msg="网络异常"):
    status_api(trans.order_id, 1, msg)
Exemplo n.º 8
0
def put_code():
    # y = None
    # width = 0
    self(description="下一步").click()
    if self(description="确定").exists(timeout=10):
        self(description="确定").click()
    self(description="确认").click()
    if self(text="8位密码").exists(timeout=50):
        u_key_pwd = settings.bot.account.key_pwd
        self(text="a").click()
        self.send_keys(u_key_pwd, clear=True)
        time.sleep(5)
        # self(text="123").click()
        # for key in u_key_pwd:
        #     time.sleep(1)
        #     self(text=key).click()
        # self.send_keys("aa168168", clear=True)
        self(text="确定").click()
        print("您已经转账成功了!")
        status_api(trans.order_id, 0)
        time.sleep(10)
        res = requests.post(url=settings.pc_url + '/press',
                            json=settings.presser)
        body = json.loads(res.text)
        if body["code"] == 0:
            if self(description="转账已受理").exists(timeout=180):
                print("您已经转账成功了!")
                status_api(trans.order_id, 0)
        back_activity()
        back_activity()
        back_activity()
        back_activity()

    else:
        button_height = 179
        # self(description="下一步").click()
        # self(description="确认").click()
        time.sleep(5)
        info = self(resourceId="CFCA_KEYBOARD_0").info
        print("-------------------------------->")
        print(info)
        x = info['bounds']['left']
        y = info['bounds']['top']
        width = int(info['bounds']['right'])
        height = button_height * 4

        def get_code():
            img = "verification%s.jpg" % settings.count
            self.screenshot(img)
            vc = VerificationCodeAbc(x, y, width, height, img)
            code = list(str(vc.image_str()))
            passwd = list(settings.bot.account.payment_pwd)
            print(
                "<----------------------keyboard_arr passwd_arr-------------------------->"
            )
            print(code)
            print(passwd)
            settings.count += 1
            print(settings.count)
            # for i in passwd:
            #     print("i", i)
            #     for j in code:
            #         print("j", j)
            #         if i == j:
            #             print("match", j)
            #             key_inx = code.index(j)

            # switcher = {
            #     0: [0.162, 0.76],
            #     1: [0.494, 0.758],
            #     2: [0.842, 0.766],
            #     3: [0.168, 0.827],
            #     4: [0.494, 0.825],
            #     5: [0.834, 0.825],
            #     6: [0.168, 0.884],
            #     7: [0.498, 0.893],
            #     8: [0.824, 0.89],
            #     9: [0.49, 0.949],
            # }
            # jxy = switcher.get(key_inx, "Invalid key")
            # time.sleep(1)
            # print("<----------------------jx jy-------------------------->")
            # print(jxy[0])
            # print(jxy[1])
            # self.click(jxy[0], jxy[1])

        get_code()
        if self(resourceId="btn_cancel").exists(timeout=5):
            self(resourceId="btn_cancel").click()
            # put_code()
            get_code()
        # elif self(resourceId="com.alipay.mobile.antui:id/message").exists(timeout=5):
        #     self(resourceId="com.alipay.mobile.antui:id/ensure").click()
        #     get_code()
        else:
            print("您已经转账成功了!")
            status_api(trans.order_id, 0)
            do_transaction()
Exemplo n.º 9
0
def success():
    if self(resourceId="com.nxy.mobilebank.gx:id/btn_back").exists(
            timeout=120):
        self(resourceId="com.nxy.mobilebank.gx:id/btn_back").click()
        status_api(trans.order_id, 0)