send_ad_idea.py 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. import time
  2. import random
  3. from selenium.webdriver.common.keys import Keys
  4. from selenium.webdriver.support.wait import WebDriverWait
  5. class IdeaAction:
  6. def __init__(self, driver, task):
  7. self.driver = driver
  8. self.task = task
  9. def push_page(self):
  10. self.driver.find_element_by_class_name('adui-button-small').click()
  11. select_input = self.driver.find_element_by_class_name('adui-input-base')
  12. select_input.send_keys('原生')
  13. self.driver.find_element_by_id('select_canvas_ok_btn').click()
  14. time.sleep(random.uniform(1, 2))
  15. def idea_banner_gzh_bottom(self):
  16. self.driver.find_element_by_css_selector('#test_material_type_135 > span.inputWrapper-3fBModc9zM > i').click()
  17. wen_input = self.driver.find_element_by_class_name('input-3MbKvywHL2')
  18. wen_input.send_keys('nihaonihao')
  19. def idea_pic_gzh_bottom(self):
  20. # TODO:添加try,catch因为图片上传可能慢
  21. WebDriverWait(self.driver, 10).until(lambda driver: driver.find_element_by_class_name('adui-button-small'))
  22. self.driver.find_element_by_class_name("webuploader-element-invisible").send_keys(
  23. "/usr/share/wallpapers/deepin/Beach_by_Samuel_Scrimshaw.jpg")
  24. WebDriverWait(self.driver, 5).until(lambda driver: driver.find_element_by_class_name('btnFist-uueBS6DQFa'))
  25. self.driver.find_element_by_class_name('btnFist-uueBS6DQFa').click()
  26. WebDriverWait(self.driver, 10).until(lambda driver: driver.find_element_by_id('test_progress_confirm'))
  27. # 等待上传完毕,因为完成按钮本身可以
  28. time.sleep(10)
  29. self.driver.find_element_by_id('test_progress_confirm').click()
  30. time.sleep(random.uniform(1, 2))
  31. self.driver.save_screenshot('set_page_pic.png')
  32. self.push_page()
  33. self.driver.save_screenshot('set_page_idea.png')
  34. def idea_movie_gzh_movie(self):
  35. WebDriverWait(self.driver, 10).until(
  36. lambda driver: driver.find_element_by_class_name('webuploader-element-invisible'))
  37. self.driver.find_element_by_class_name('webuploader-element-invisible').send_keys(
  38. '/home/cxyu/Downloads/上门龙婿-竖3(1).mp4')
  39. suc_button = self.driver.find_element_by_id('test_progress_confirm')
  40. WebDriverWait(self.driver, 1000).until(lambda x: (suc_button.is_displayed() and suc_button.is_enabled()))
  41. self.driver.find_element_by_id('test_progress_confirm').click()
  42. self.driver.save_screenshot('set_page_pic.png')
  43. self.push_page()
  44. text_input = self.driver.find_element_by_css_selector('#reward_video_desc > div > input')
  45. text_input.send_keys('asdf')
  46. def idea_big_pic(self):
  47. # 设置图片
  48. WebDriverWait(self.driver, 10).until(
  49. lambda driver: self.driver.find_element_by_class_name('webuploader-element-invisible'))
  50. page_input = self.driver.find_element_by_class_name('webuploader-element-invisible')
  51. page_input.send_keys('/usr/share/wallpapers/deepin/Beach_by_Samuel_Scrimshaw.jpg')
  52. try:
  53. WebDriverWait(self.driver, 100).until(lambda driver: driver.find_element_by_xpath(
  54. '//*[@id="wxadcontainer"]/div[1]/div/div[2]/main/div/div[2]/div[2]/div/div[1]/div[1]/div[2]/div/form/div[2]/div/div[1]/div/div[1]/div/div/div/div/div/div[2]/section/div/div[2]/button[1]'))
  55. self.driver.find_element_by_xpath(
  56. '//*[@id="wxadcontainer"]/div[1]/div/div[2]/main/div/div[2]/div[2]/div/div[1]/div[1]/div[2]/div/form/div[2]/div/div[1]/div/div[1]/div/div/div/div/div/div[2]/section/div/div[2]/button[1]').click()
  57. WebDriverWait(self.driver, 100).until(
  58. lambda driver: self.driver.find_element_by_xpath('//*[@id="test_progress_confirm"]'))
  59. suc_button = self.driver.find_element_by_xpath('//*[@id="test_progress_confirm"]')
  60. WebDriverWait(self.driver, 100).until(lambda driver: suc_button.is_displayed() and suc_button.is_enabled())
  61. suc_button.click()
  62. except:
  63. pass
  64. idea_dic = self.task['idea']
  65. select_elements = self.driver.find_elements_by_xpath('//*[@class="label-2ZOAbuO31o"]')
  66. input_elements = self.driver.find_elements_by_xpath('//*[@class="input-3MbKvywHL2"]')
  67. # 信息栏
  68. if idea_dic['info_type'] == 1:
  69. # 头像
  70. for _ in select_elements:
  71. if _.text == '头像昵称型':
  72. _.click()
  73. if idea_dic['info_type'] == 2:
  74. # 文案
  75. for _ in select_elements:
  76. if _.text == '文案型':
  77. _.click()
  78. for _ in input_elements:
  79. # 信息栏文案
  80. if _.get_attribute("placeholder") == '信息栏文案':
  81. _.send_keys(idea_dic['info_type-content'])
  82. time.sleep(random.uniform(0.1, 0.2))
  83. # 图文标题
  84. '//*[@id="test_first_line_input"]/div/input'
  85. self.driver.find_element_by_xpath('//*[@id="test_first_line_input"]/div/input').send_keys(idea_dic['title'])
  86. time.sleep(random.uniform(0.1, 0.2))
  87. # 广告文案
  88. for _ in input_elements:
  89. if _.get_attribute("placeholder") == '请输入首行文案':
  90. _.send_keys(idea_dic['content_one'])
  91. time.sleep(random.uniform(0.1, 0.2))
  92. if _.get_attribute("placeholder") == '请输入次行文案':
  93. _.send_keys(idea_dic['content_two'])
  94. time.sleep(random.uniform(0.1, 0.2))
  95. if _.get_attribute("placeholder") == '请输入第三行文案(选填)':
  96. _.send_keys(idea_dic['content_three'])
  97. time.sleep(random.uniform(0.1, 0.2))
  98. # 标签展示
  99. for _ in select_elements:
  100. if _.text == '不启用' and idea_dic['lable_type'] == 1:
  101. _.click()
  102. if _.text == '好友关注量标签' and idea_dic['lable_type'] == 2:
  103. _.click()
  104. if _.text == '转化目标量标签' and idea_dic['lable_type'] == 3:
  105. _.click()
  106. time.sleep(random.uniform(0.1, 0.2))
  107. # 点击跳转
  108. for _ in select_elements:
  109. if _.text == '公众号详情页' and idea_dic['jump_type'] == 2:
  110. _.click()
  111. time.sleep(random.uniform(0.1, 0.2))
  112. # 按钮文案
  113. for _ in select_elements:
  114. if _.text == '立即咨询' and idea_dic['button_type'] == 2:
  115. _.click()
  116. if _.text == '立即申请' and idea_dic['button_type'] == 3:
  117. _.click()
  118. if _.text == '阅读小说' and idea_dic['button_type'] == 4:
  119. _.click()
  120. time.sleep(random.uniform(0.1, 0.2))
  121. if idea_dic['jump_type'] == 1:
  122. # 点击按钮跳转
  123. for _ in select_elements:
  124. if _.text == '一键关注' and idea_dic['jump_type-button_type'] == 2:
  125. _.click()
  126. time.sleep(random.uniform(0.1, 0.2))
  127. # 原生推广页选择
  128. self.driver.find_element_by_xpath('//*[@id="choose_template"]').click()
  129. select_elements = self.driver.find_elements_by_xpath('//*[@class="inputWrapper-3fBModc9zM"]')
  130. for _ in select_elements:
  131. if _.get_attribute("placeholder") == '输入关键字搜索推广页':
  132. _.send_keys(idea_dic['jump_type-page_type'])
  133. _.send_keys(Keys.RETURN)
  134. WebDriverWait(self.driver, 30).until(
  135. lambda driver: self.driver.find_elements_by_xpath('//*[@class="adui-table-cellInner"]'))
  136. page_elements = self.driver.find_elements_by_xpath('//*[@class="adui-table-cellInner"]')
  137. for _ in page_elements:
  138. if _.text == idea_dic['jump_type-page_type']:
  139. _.click()
  140. time.sleep(random.uniform(0.1, 0.2))
  141. self.driver.find_element_by_xpath('//*[@id="select_canvas_ok_btn"]/span').click()
  142. '//*[@id="test_creative_next_step"]'
  143. time.sleep(random.uniform(0.1, 0.2))
  144. def idea_pyq(self):
  145. pass