【playwright】菜鸟金融后台打开登陆

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    user_data_dir = "/Users/kaka/Library/Application Support/Google/Chrome"
    # user_data_dir = "/Users/kaka/chrome"
    args = [
        '--disable-blink-features=AutomationControlled',
        f"--disable-extensions",
        f"--disable-popup-blocking",
        f"--ignore-certificate-errors",
        f"--disable-plugins-discovery",
        f'--no-first-run',
        f'--no-service-autorun',
        f'--no-default-browser-check',
        #   f'--no-startup-window',
        f'--disable-dev-shm-usage',
        #   f"--disable-extensions-except={cookie_extension},{path_to_extension}",
    ]
    headless = False
    context = playwright.chromium.launch_persistent_context(
        user_data_dir,
        channel="chrome",
        device_scale_factor=1,
        devtools=False,
        headless=False,
        args=args
    )
    browser = context.browser
    page = context.new_page()
    page.set_default_timeout(10000)
    # 跳到登录页面
    page.goto("https://cnlogin.cainiao.com/login?appKey=12497914&istb=true&redirectURL=https%3A%2F%2Fmerchant.finance.cainiao.com%2Ffunds%2Findex.htm%3Ftbpm%3D3&showae=true&showin=false&showdd=false&tbUserName=&sub=&type=ML&domain=&lang=&isNewLogin=&targetAccount=&meta=&isEnterprise=&isQTb=false&isCnSSOTb=false")
    page.wait_for_timeout(5000)
    try:
        username = page.frame_locator("#J_taobao iframe").locator('#fm-login-id')
        username.click()
        username.fill('cainiao_account')
        page.wait_for_timeout(1000)
    except Exception as e:
        print(f"账号名/邮箱/手机号->Exception:{e}")
        pass
    try:
        userpass = page.frame_locator("#J_taobao iframe").locator('#fm-login-password')
        userpass.click()
        userpass.fill('cainiao_password')
        page.wait_for_timeout(1000)
    except Exception as e:
        print(f"请输入登录密码->Exception:{e}")
        pass
    # 获取拖动按钮位置并拖动
    try:
        drop_button = page.frame_locator("#J_taobao iframe").frame_locator("#baxia-dialog-content").locator("#nc_1_n1z")
        box = drop_button.bounding_box()
        page.mouse.move(box['x'] + box['width'] / 2, box['y'] + box['height'] / 2)
        page.mouse.down()
        mov_x = box['x'] + box['width'] / 2 + 260
        page.mouse.move(mov_x, box['y'] + box['height'] / 2)
        page.mouse.up()
        page.wait_for_timeout(5000)
    except Exception as e:
        print(f"获取拖动按钮位置并拖动->Exception:{e}")
        pass
    # 登录按钮
    try:
        # page.frame_locator("#J_taobao iframe").locator(".fm-submit").click()
        page.frame_locator("#J_taobao iframe").locator(".fm-submit").click()
        page.wait_for_timeout(5000)
    except Exception as e:
        print(f"登录按钮->Exception:{e}")
        pass
    # 快速进入
    try:
        # page.frame_locator("#J_taobao iframe").locator(".fm-submit").click()
        # page.frame_locator("#J_taobao iframe").get_by_role("button", name="快速进入")
        quick_entry = page.frame_locator("#J_taobao iframe").locator(".fm-submit")
        quick_entry.click()
        quick_entry.click()
        page.wait_for_timeout(5000)
    except Exception as e:
        print(f"快速进入->Exception:{e}")
        pass
    page.wait_for_timeout(10000000)
    context.close()
    browser.close()

def on_response(response):
    if (response.url == "https://member.cainiao.com/login2.htm?redirect_url=https%3A%2F%2Fmerchant.finance.cainiao.com%2Ffunds%2Findex.htm%3Ftbpm%3D3"):
        print(response)

with sync_playwright() as playwright:
    run(playwright)

 

posted @ 2023-01-11 10:19  爱家家的卡卡  阅读(346)  评论(0编辑  收藏  举报