Bläddra i källkod

MOD:添加 广告投放 选项

cxyu 3 år sedan
förälder
incheckning
5ee6fe4e2f
2 ändrade filer med 78 tillägg och 25 borttagningar
  1. 42 21
      wechat_action/create_ad_plan.py
  2. 36 4
      wechat_action/create_ad_plan_idea.py

+ 42 - 21
wechat_action/create_ad_plan.py

@@ -31,6 +31,21 @@ class CreateAdPlan():
         title_.send_keys(self.task['title'])
         title_.send_keys(self.task['title'])
         title_.send_keys(Keys.RETURN)
         title_.send_keys(Keys.RETURN)
 
 
+    def set_ad_cpm(self):
+        # TODO:设置完之后,test函数中进行对应修改
+        if self.task['cpm']['cpm_set'] == 2:
+            self.driver.find_element_by_xpath(
+                '//*[@id="wxadcontainer"]/div[1]/div/div[2]/main/div/div[2]/div[1]/div/div[2]/div/div[1]/section[2]/form/div/div[1]/div[1]/button[2]/span').click()
+            time.sleep(0.1)
+            select_elements = self.driver.find_elements_by_xpath('//*[@class="adui-radio-base adui-radio-small"]')
+            for _ in select_elements:
+                if '优先跑量' in _.text and self.task['cpm']['module'] == 2:
+                    _.click()
+                    time.sleep(0.1)
+                if '下单' in _.text:
+                    _.click()
+                    time.sleep(0.1)
+
     def set_ad_locations(self):
     def set_ad_locations(self):
         gg_button = self.driver.find_element_by_class_name(
         gg_button = self.driver.find_element_by_class_name(
             'adui-button-hasLeftIcon')
             'adui-button-hasLeftIcon')
@@ -76,27 +91,34 @@ class CreateAdPlan():
         WebDriverWait(self.driver, 10).until(
         WebDriverWait(self.driver, 10).until(
             lambda driver: self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]'))
             lambda driver: self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]'))
         input_elements = self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]')
         input_elements = self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]')
-        input_elements[0].click()
-        input_elements[0].send_keys(Keys.RIGHT)
 
 
-        for i in range(7):
-            time.sleep(random.uniform(0.1, 0.2))
-            input_elements[0].send_keys(Keys.BACKSPACE)
-        for _ in self.task['date_list'][0][1:]:
-            time.sleep(random.uniform(0.1, 0.2))
-            input_elements[0].send_keys(_)
+        if self.task['date_set']['date_module'] == 2:
+            select_elements = self.driver.find_elements_by_xpath('//*[@class="adui-radio-base adui-radio-small"]')
+            for _ in select_elements:
+                if '长期投放' in _.text:
+                    _.click()
+            input_elements[0].click()
+            input_elements[0].send_keys(Keys.RIGHT)
+
+            for i in range(7):
+                time.sleep(random.uniform(0.1, 0.2))
+                input_elements[0].send_keys(Keys.BACKSPACE)
+            for _ in self.task['date_set']['date_list'][0][1:]:
+                time.sleep(random.uniform(0.1, 0.2))
+                input_elements[0].send_keys(_)
 
 
-        time.sleep(random.uniform(0.1, 0.2))
-        input_elements[1].click()
-        time.sleep(0.1)
-        input_elements[1].send_keys(Keys.RIGHT)
-        for i in range(7):
             time.sleep(random.uniform(0.1, 0.2))
             time.sleep(random.uniform(0.1, 0.2))
-            input_elements[1].send_keys(Keys.BACKSPACE)
-        time.sleep(random.uniform(0.1, 0.2))
-        for _ in self.task['date_list'][1][1:]:
+        else:
+            input_elements[1].click()
+            time.sleep(0.1)
+            input_elements[1].send_keys(Keys.RIGHT)
+            for i in range(7):
+                time.sleep(random.uniform(0.1, 0.2))
+                input_elements[1].send_keys(Keys.BACKSPACE)
             time.sleep(random.uniform(0.1, 0.2))
             time.sleep(random.uniform(0.1, 0.2))
-            input_elements[1].send_keys(_)
+            for _ in self.task['date_set']['date_list'][1][1:]:
+                time.sleep(random.uniform(0.1, 0.2))
+                input_elements[1].send_keys(_)
 
 
     def set_ad_human_location(self):
     def set_ad_human_location(self):
         WebDriverWait(self.driver, 10).until(
         WebDriverWait(self.driver, 10).until(
@@ -112,9 +134,7 @@ class CreateAdPlan():
             self.driver.find_element_by_class_name('icon-3cAquX1RLZ').click()
             self.driver.find_element_by_class_name('icon-3cAquX1RLZ').click()
             self.driver.find_element_by_xpath('//*[@id="bid_objective_6"]/span[1]').click()
             self.driver.find_element_by_xpath('//*[@id="bid_objective_6"]/span[1]').click()
         if self.task['localtion'] == 'pyq':
         if self.task['localtion'] == 'pyq':
-            citys = self.driver.find_elements_by_class_name('checkbox-1pfRMRqv-R')
-            for _ in citys:
-                _.click()
+            self.driver.find_element_by_class_name('icon-3cAquX1RLZ').click()
 
 
     def set_ad_cost(self):
     def set_ad_cost(self):
         # 投放计划创建
         # 投放计划创建
@@ -142,7 +162,7 @@ class CreateAdPlan():
         human_input = [_ for _ in self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]') if
         human_input = [_ for _ in self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]') if
                        _.get_attribute("placeholder") == '输入名称搜索人群包'][0]
                        _.get_attribute("placeholder") == '输入名称搜索人群包'][0]
 
 
-        for _ in self.task['human_info']:
+        for _ in self.task['human_info_package']:
             human_input.click()
             human_input.click()
             human_input.send_keys(_)
             human_input.send_keys(_)
             human_input.send_keys(Keys.RETURN)
             human_input.send_keys(Keys.RETURN)
@@ -208,6 +228,7 @@ class CreateAdPlan():
             self.set_ad_locations()
             self.set_ad_locations()
             self.set_ad_time()
             self.set_ad_time()
             self.set_ad_title()
             self.set_ad_title()
+            self.set_ad_cpm()
             self.set_ad_human_location()
             self.set_ad_human_location()
             self.set_ad_human()
             self.set_ad_human()
             self.set_ad_cost()
             self.set_ad_cost()

+ 36 - 4
wechat_action/create_ad_plan_idea.py

@@ -29,7 +29,7 @@ class IdeaAction:
             pass
             pass
 
 
     def push_promotion_page(self):
     def push_promotion_page(self):
-        #TODO:对于朋友圈需要整体新建一个
+        # TODO:对于朋友圈需要整体新建一个-----问题挺多
         idea_dic = self.task['idea']
         idea_dic = self.task['idea']
         select_elements = self.driver.find_elements_by_xpath('//*[@class="label-2ZOAbuO31o"]')
         select_elements = self.driver.find_elements_by_xpath('//*[@class="label-2ZOAbuO31o"]')
         # 点击跳转
         # 点击跳转
@@ -58,7 +58,8 @@ class IdeaAction:
             # 原生推广页选择
             # 原生推广页选择
             self.driver.find_element_by_xpath('//*[@id="choose_template"]').click()
             self.driver.find_element_by_xpath('//*[@id="choose_template"]').click()
             select_elements = self.driver.find_elements_by_xpath('//*[@class="inputWrapper-3fBModc9zM"]')
             select_elements = self.driver.find_elements_by_xpath('//*[@class="inputWrapper-3fBModc9zM"]')
-            for _ in select_elements:
+            input_elements = self.driver.find_element_by_xpath('//*[@class="adui-input-base"]')
+            for _ in input_elements:
                 if _.get_attribute("placeholder") == '输入关键字搜索推广页':
                 if _.get_attribute("placeholder") == '输入关键字搜索推广页':
                     _.send_keys(idea_dic['jump_type-page_type'])
                     _.send_keys(idea_dic['jump_type-page_type'])
                     _.send_keys(Keys.RETURN)
                     _.send_keys(Keys.RETURN)
@@ -219,7 +220,7 @@ class IdeaAction:
         self.push_promotion_page()
         self.push_promotion_page()
 
 
     def idea_pyq(self):
     def idea_pyq(self):
-        #TODO: 选择相关落地页
+        # TODO: 选择相关落地页
         print(self.driver.current_url)
         print(self.driver.current_url)
         '//*[@id="wxadcontainer"]/div[1]/div/div[2]/main/div/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[2]/div/div[1]/div[2]/div'
         '//*[@id="wxadcontainer"]/div[1]/div/div[2]/main/div/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[2]/div/div[1]/div[2]/div'
         WebDriverWait(self.driver, 100).until(
         WebDriverWait(self.driver, 100).until(
@@ -229,7 +230,38 @@ class IdeaAction:
         ).send_keys(self.task['idea']['content'])
         ).send_keys(self.task['idea']['content'])
 
 
         time.sleep(random.uniform(0.1, 0.5))
         time.sleep(random.uniform(0.1, 0.5))
-        self.push_promotion_page()
+
+        # 朋友圈其他设置
+        select_elements = self.driver.find_elements_by_xpath('//*[@class="label-2ZOAbuO31o"]')
+        for _ in select_elements:
+            if _.text == '了解更多' and self.task['idea']['jump_type-text_type'] == 2:
+                _.click()
+            if _.text == '原生推广页' and self.task['idea']['jump_type-link_type'] == 2:
+                _.click()
+
+        # 朋友圈推广页选择
+        self.driver.find_element_by_xpath('//*[@id="choose_template"]').click()
+
+        input_elements = self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]')
+        for _ in input_elements:
+            if _.get_attribute("placeholder") == '输入关键字搜索推广页':
+                _.send_keys(self.task['idea']['jump_type-page_type'])
+                _.send_keys(Keys.RETURN)
+        WebDriverWait(self.driver, 30).until(
+            lambda driver: self.driver.find_elements_by_xpath('//*[@class="adui-table-cellInner"]'))
+
+        page_elements = self.driver.find_elements_by_xpath('//*[@class="adui-table-cellInner"]')
+        for _ in page_elements:
+            # 推广页的名字需要一模一样
+            if _.text == self.task['idea']['jump_type-page_type']:
+                _.click()
+        time.sleep(random.uniform(0.1, 0.2))
+
+        self.driver.find_element_by_xpath('//*[@id="select_canvas_ok_btn"]/span').click()
+        '//*[@id="test_creative_next_step"]'
+        time.sleep(random.uniform(0.1, 0.2))
+
+
         time.sleep(random.uniform(0.1, 0.5))
         time.sleep(random.uniform(0.1, 0.5))
         if self.task['idea']['data_show'] == 2:
         if self.task['idea']['data_show'] == 2:
             self.driver.find_element_by_xpath(
             self.driver.find_element_by_xpath(