""" We-analysis-functions """ import asyncio from .config import platform_map async def check_account(page, account_name): """ 切换账号 :param page: playwright instance page class :param account_name: 小程序名称 """ await page.get_by_text("账号", exact=True).click() await page.get_by_text("切换账号切换账号").click() await page.locator(f'text=/^{account_name}$/').click() await asyncio.sleep(5) async def navigate(page, account_name): """ :param page: playwright instance page class :param account_name: """ await page.get_by_text("经营工具").click() for experiment_name in platform_map[account_name].keys(): await page.get_by_text("实验工具", exact=True).click() await page.get_by_text("实验数据", exact=True).click() print(experiment_name) await asyncio.sleep(10) await page.locator(f'text=/^{experiment_name}$/').click() index_list = platform_map[account_name][experiment_name] await download_file_list(page, index_list) async def download_file_list(page, index_list): """ :param page: playwright instance page class :param index_list: 需要导出的实验list :return: """ for i, index in enumerate(index_list): if i == 0: pre_index = index_list[0] else: pre_index = index_list[i - 1] await download_file(page, pre_index, index) await asyncio.sleep(10) async def download_file(page, pre_index, target_path): """ :param page: playwright instance page class :param pre_index: 前置索引 :param target_path: 目标地址 :return: """ await page.locator("dt").filter(has_text=pre_index).first.click() await page.get_by_role("list").get_by_text(target_path, exact=True).click() await asyncio.sleep(8) await page.get_by_role("img", name="下载").click() async def navigate_and_download(page, experiment_name, platform): """ 导航到指定的页面并触发下载。 :param page: playwright的页面对象。 :param experiment_name: 要导航到的实验名称。 :param platform: 小程序名称。 """ if platform == "票圈视频+" and experiment_name in ['广告实验', '产品/广告实验']: if experiment_name == "产品/广告实验": await page.get_by_text("实验工具").click() await page.get_by_text("实验数据").click() await page.locator(f'text=/^{experiment_name}$/').click() # 小程序访问人数 await asyncio.sleep(10) # await page.get_by_text("小程序访问人数").nth(1).click() await page.locator("dt").filter(has_text="小程序访问人数").first.click() await page.get_by_role("list").get_by_text("小程序访问人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 小程序分享人数 # await page.get_by_text("小程序访问人数").nth(1).click() await page.locator("dt").filter(has_text="小程序访问人数").first.click() await page.get_by_role("list").get_by_text("小程序分享人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 小程序分享次数 await page.locator("dt").filter(has_text="小程序分享人数").click() await page.get_by_role("list").get_by_text("小程序分享次数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告曝光次数 await page.locator("dt").filter(has_text="小程序分享次数").click() await page.get_by_role("list").get_by_text("广告曝光次数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) await page.locator("dt").filter(has_text="广告曝光次数").click() await page.get_by_role("list").get_by_text("广告曝光人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告 eCPM await page.locator("dt").filter(has_text="广告曝光人数").click() await page.get_by_role("list").get_by_text("广告 eCPM", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) elif experiment_name == "广告实验": await page.get_by_text("实验工具").click() await page.get_by_text("实验数据").click() await page.locator(f'text=/^{experiment_name}$/').click() # 小程序访问人数 await asyncio.sleep(10) # await page.get_by_text("小程序访问人数").nth(1).click() await page.locator("dt").filter(has_text="小程序访问人数").first.click() await page.get_by_role("list").get_by_text("小程序访问人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告曝光次数 await page.locator("dt").filter(has_text="小程序访问人数").first.click() await page.get_by_role("list").get_by_text("广告曝光次数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) await page.locator("dt").filter(has_text="广告曝光次数").click() await page.get_by_role("list").get_by_text("广告曝光人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告 eCPM await page.locator("dt").filter(has_text="广告曝光人数").click() await page.get_by_role("list").get_by_text("广告 eCPM", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告收入 await page.locator("dt").filter(has_text="广告 eCPM").click() await page.get_by_role("list").get_by_text("广告收入", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) else: await page.get_by_text("实验工具").click() await page.get_by_text("实验数据").click() await page.locator(f'text=/^{experiment_name}$/').click() # 小程序访问人数 await asyncio.sleep(10) # await page.get_by_text("小程序访问人数").nth(1).click() await page.locator("dt").filter(has_text="小程序访问人数").first.click() await page.get_by_role("list").get_by_text("小程序访问人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 小程序分享人数 # await page.get_by_text("小程序访问人数").nth(1).click() await page.locator("dt").filter(has_text="小程序访问人数").first.click() await page.get_by_role("list").get_by_text("小程序分享人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 小程序分享次数 await page.locator("dt").filter(has_text="小程序分享人数").click() await page.get_by_role("list").get_by_text("小程序分享次数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告曝光次数 await page.locator("dt").filter(has_text="小程序分享次数").click() await page.get_by_role("list").get_by_text("广告曝光次数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告曝光人数 await page.locator("dt").filter(has_text="广告曝光次数").click() await page.get_by_role("list").get_by_text("广告曝光人数", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告 eCPM await page.locator("dt").filter(has_text="广告曝光人数").click() await page.get_by_role("list").get_by_text("广告 eCPM", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10) # 广告收入 await page.locator("dt").filter(has_text="广告 eCPM").click() await page.get_by_role("list").get_by_text("广告收入", exact=True).click() await asyncio.sleep(10) await page.get_by_role("img", name="下载").click() await asyncio.sleep(10)