Forráskód Böngészése

MOD:修改人群报选择方式

cxyu 3 éve
szülő
commit
db2d59548d

+ 2 - 3
web_module/tornado_api.py

@@ -72,11 +72,9 @@ class create_ad_plan_local(BaseHandler):
 class create_ad_plan(BaseHandler):
     # TODO:只要tornado开着就不允许修改数据库,------想好之后上线如何操作
 
-    # TODO:名字检查----只保留三种符号(.-_),中文字符长度一,数字字符长度二
 
     @staticmethod
     def check_task(user_id):
-        # TODO:检查是否同user_id的任务在跑中,有的话只保存任务.不做其他事情
         sql_session = db.DBSession()
         result = sql_tools.get_task_in_hand_num(user_id, sql_session)
         return result
@@ -135,12 +133,13 @@ class create_ad_plan(BaseHandler):
                                  args=(user_id, ad_plan_list, log_ad, db, cookie_canuse, task_name)).start()
             else:
                 self.save_task_info(user_id, ad_plan_list, sql_session, task_name)
+                self.write({'status': {'msg': 'success', "RetCode": 200}})
         except Exception as e:
             if log_ad:
                 log_ad.driver.quit()
 
             logging.error(str(e))
-            self.write('eror')
+            self.write('error')
             raise
         finally:
             sql_session.commit()

+ 0 - 1
wechat_action/create_ad_layout.py

@@ -758,7 +758,6 @@ class CreateAd:
                     self.set_content(_['content'])
                 if _['type'] == 'followAcc':
                     self.set_follow_button(_['content'])
-                logging.info('设置板块,结束')
 
             self.set_share_content(title_content=layout['shareTittle'], des_content=layout['shareDesc'])
 

+ 50 - 6
wechat_action/create_ad_plan.py

@@ -121,10 +121,8 @@ class CreateAdPlan():
             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(_)
             input_elements[0].send_keys(Keys.RETURN)
 
@@ -137,10 +135,8 @@ class CreateAdPlan():
             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))
@@ -148,11 +144,9 @@ class CreateAdPlan():
             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))
             for _ in self.task['date_set']['date_list'][1][1:]:
-                time.sleep(random.uniform(0.1, 0.2))
                 input_elements[1].send_keys(_)
             input_elements[1].send_keys(Keys.RETURN)
 
@@ -209,6 +203,56 @@ class CreateAdPlan():
         ActionChains(self.driver).move_to_element(select_human_element).click().perform()
         time.sleep(0.4)
 
+        WebDriverWait(self.driver, 100).until(
+            lambda x: [_ for _ in self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]') if
+                       _.get_attribute("placeholder") == '输入名称搜索人群包'])
+
+        logging.info('翻页开始')
+        page_text_element = self.driver.find_element_by_xpath(
+            '//*[@class="adui-pagination-text"]')
+
+        page_num_info = re.findall('\d+', page_text_element.text)
+        page_num = int(page_num_info[1].strip())
+        for z in range(page_num):
+            for i in self.driver.find_elements_by_xpath(
+                    '//*[@class="adui-table-cell"]'):
+                WebDriverWait(self.driver, 5).until(lambda driver: i.is_displayed() and i.is_enabled())
+
+            human_infos = self.driver.find_elements_by_class_name('adui-table-cellInner')
+            for _ in human_infos:
+                if _.text in self.task['human_info_package']['name']:
+                    _.click()
+
+            # 翻页
+            turn_page_buttons = self.driver.find_elements_by_xpath(
+                '//*[@class="adui-button-base adui-button-normal adui-button-mini adui-button-hasLeftIcon adui-button-hasRightIcon"]')
+            turn_page_buttons[1].click()
+            # 确保翻页成功
+            new_page_text_element = self.driver.find_element_by_xpath(
+                '//*[@class="adui-pagination-text"]')
+
+            new_page_num_info = re.findall('\d+', page_text_element.text)
+            page_num_now = int(new_page_num_info[0].strip())
+            # 翻到最后一页时停止
+            if new_page_num_info[0].strip() == new_page_num_info[1].strip():
+                break
+            WebDriverWait(self.driver, 10).until(
+                lambda x: z != page_num_now)
+        logging.info('翻页结束')
+
+        self.driver.find_element_by_xpath(
+            '//*[@class="adui-button-base adui-button-primary adui-button-small"]').click()
+
+    def set_ad_human_old(self):
+        # TODO:检查人群是否正常
+        logging.info('设置人群包')
+        self.driver.find_element_by_xpath('//*[@id="test-dmp-container"]/div[2]/span/span[1]').click()
+        time.sleep(0.1)
+        select_human_element = self.driver.find_element_by_xpath(
+            '//*[@id="test-dmp-container"]/div[2]/div[2]/div[1]/div/div[1]/button/span')
+        ActionChains(self.driver).move_to_element(select_human_element).click().perform()
+        time.sleep(0.4)
+
         WebDriverWait(self.driver, 100).until(
             lambda x: [_ for _ in self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]') if
                        _.get_attribute("placeholder") == '输入名称搜索人群包'])

+ 1 - 0
wechat_action/login_ad.py

@@ -128,6 +128,7 @@ class LogIn:
             ''')
         WebDriverWait(self.driver, 100).until(
             lambda driver: len(self.driver.find_elements_by_link_text('广告投放')) == 1)
+        time.sleep(0.1)
         elements = self.driver.find_elements_by_link_text('广告投放')
         elements[0].click()
         time.sleep(1)