123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- """
- 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)
|