navigate_and_download.py 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import asyncio
  2. async def navigate_and_download(page, experiment_name, platform):
  3. """
  4. 导航到指定的页面并触发下载。
  5. :param page: playwright的页面对象。
  6. :param experiment_name: 要导航到的实验名称。
  7. :param platform: 小程序名称。
  8. """
  9. if platform == "票圈视频+" and experiment_name in ['广告实验', '产品/广告实验']:
  10. if experiment_name == "产品/广告实验":
  11. await page.get_by_text("实验工具").click()
  12. await page.get_by_text("实验数据").click()
  13. await page.locator(f'text=/^{experiment_name}$/').click()
  14. # 小程序访问人数
  15. await asyncio.sleep(10)
  16. # await page.get_by_text("小程序访问人数").nth(1).click()
  17. await page.locator("dt").filter(has_text="小程序访问人数").first.click()
  18. await page.get_by_role("list").get_by_text("小程序访问人数", exact=True).click()
  19. await asyncio.sleep(10)
  20. await page.get_by_role("img", name="下载").click()
  21. await asyncio.sleep(10)
  22. # 小程序分享人数
  23. # await page.get_by_text("小程序访问人数").nth(1).click()
  24. await page.locator("dt").filter(has_text="小程序访问人数").first.click()
  25. await page.get_by_role("list").get_by_text("小程序分享人数", exact=True).click()
  26. await asyncio.sleep(10)
  27. await page.get_by_role("img", name="下载").click()
  28. await asyncio.sleep(10)
  29. # 小程序分享次数
  30. await page.locator("dt").filter(has_text="小程序分享人数").click()
  31. await page.get_by_role("list").get_by_text("小程序分享次数", exact=True).click()
  32. await asyncio.sleep(10)
  33. await page.get_by_role("img", name="下载").click()
  34. await asyncio.sleep(10)
  35. # 广告曝光次数
  36. await page.locator("dt").filter(has_text="小程序分享次数").click()
  37. await page.get_by_role("list").get_by_text("广告曝光次数", exact=True).click()
  38. await asyncio.sleep(10)
  39. await page.get_by_role("img", name="下载").click()
  40. await asyncio.sleep(10)
  41. await page.locator("dt").filter(has_text="广告曝光次数").click()
  42. await page.get_by_role("list").get_by_text("广告曝光人数", exact=True).click()
  43. await asyncio.sleep(10)
  44. await page.get_by_role("img", name="下载").click()
  45. await asyncio.sleep(10)
  46. # 广告 eCPM
  47. await page.locator("dt").filter(has_text="广告曝光人数").click()
  48. await page.get_by_role("list").get_by_text("广告 eCPM", exact=True).click()
  49. await asyncio.sleep(10)
  50. await page.get_by_role("img", name="下载").click()
  51. await asyncio.sleep(10)
  52. elif experiment_name == "广告实验":
  53. await page.get_by_text("实验工具").click()
  54. await page.get_by_text("实验数据").click()
  55. await page.locator(f'text=/^{experiment_name}$/').click()
  56. # 小程序访问人数
  57. await asyncio.sleep(10)
  58. # await page.get_by_text("小程序访问人数").nth(1).click()
  59. await page.locator("dt").filter(has_text="小程序访问人数").first.click()
  60. await page.get_by_role("list").get_by_text("小程序访问人数", exact=True).click()
  61. await asyncio.sleep(10)
  62. await page.get_by_role("img", name="下载").click()
  63. await asyncio.sleep(10)
  64. # 广告曝光次数
  65. await page.locator("dt").filter(has_text="小程序访问人数").click()
  66. await page.get_by_role("list").get_by_text("广告曝光次数", exact=True).click()
  67. await asyncio.sleep(10)
  68. await page.get_by_role("img", name="下载").click()
  69. await asyncio.sleep(10)
  70. await page.locator("dt").filter(has_text="广告曝光次数").click()
  71. await page.get_by_role("list").get_by_text("广告曝光人数", exact=True).click()
  72. await asyncio.sleep(10)
  73. await page.get_by_role("img", name="下载").click()
  74. await asyncio.sleep(10)
  75. # 广告 eCPM
  76. await page.locator("dt").filter(has_text="广告曝光人数").click()
  77. await page.get_by_role("list").get_by_text("广告 eCPM", exact=True).click()
  78. await asyncio.sleep(10)
  79. await page.get_by_role("img", name="下载").click()
  80. await asyncio.sleep(10)
  81. # 广告收入
  82. await page.locator("dt").filter(has_text="广告 eCPM").click()
  83. await page.get_by_role("list").get_by_text("广告收入", exact=True).click()
  84. await asyncio.sleep(10)
  85. await page.get_by_role("img", name="下载").click()
  86. await asyncio.sleep(10)
  87. else:
  88. await page.get_by_text("实验工具").click()
  89. await page.get_by_text("实验数据").click()
  90. await page.locator(f'text=/^{experiment_name}$/').click()
  91. # 小程序访问人数
  92. await asyncio.sleep(10)
  93. # await page.get_by_text("小程序访问人数").nth(1).click()
  94. await page.locator("dt").filter(has_text="小程序访问人数").first.click()
  95. await page.get_by_role("list").get_by_text("小程序访问人数", exact=True).click()
  96. await asyncio.sleep(10)
  97. await page.get_by_role("img", name="下载").click()
  98. await asyncio.sleep(10)
  99. # 小程序分享人数
  100. # await page.get_by_text("小程序访问人数").nth(1).click()
  101. await page.locator("dt").filter(has_text="小程序访问人数").first.click()
  102. await page.get_by_role("list").get_by_text("小程序分享人数", exact=True).click()
  103. await asyncio.sleep(10)
  104. await page.get_by_role("img", name="下载").click()
  105. await asyncio.sleep(10)
  106. # 小程序分享次数
  107. await page.locator("dt").filter(has_text="小程序分享人数").click()
  108. await page.get_by_role("list").get_by_text("小程序分享次数", exact=True).click()
  109. await asyncio.sleep(10)
  110. await page.get_by_role("img", name="下载").click()
  111. await asyncio.sleep(10)
  112. # 广告曝光次数
  113. await page.locator("dt").filter(has_text="小程序分享次数").click()
  114. await page.get_by_role("list").get_by_text("广告曝光次数", exact=True).click()
  115. await asyncio.sleep(10)
  116. await page.get_by_role("img", name="下载").click()
  117. await asyncio.sleep(10)
  118. await page.locator("dt").filter(has_text="广告曝光次数").click()
  119. await page.get_by_role("list").get_by_text("广告曝光人数", exact=True).click()
  120. await asyncio.sleep(10)
  121. await page.get_by_role("img", name="下载").click()
  122. await asyncio.sleep(10)
  123. # 广告 eCPM
  124. await page.locator("dt").filter(has_text="广告曝光人数").click()
  125. await page.get_by_role("list").get_by_text("广告 eCPM", exact=True).click()
  126. await asyncio.sleep(10)
  127. await page.get_by_role("img", name="下载").click()
  128. await asyncio.sleep(10)
  129. # 广告收入
  130. await page.locator("dt").filter(has_text="广告 eCPM").click()
  131. await page.get_by_role("list").get_by_text("广告收入", exact=True).click()
  132. await asyncio.sleep(10)
  133. await page.get_by_role("img", name="下载").click()
  134. await asyncio.sleep(10)