Explorar o código

MOD:投放计划搜索等待,修改

cxyu %!s(int64=3) %!d(string=hai) anos
pai
achega
123bbb94c3

+ 17 - 14
wechat_action/create_ad_plan.py

@@ -53,8 +53,12 @@ class CreateAdPlan():
 
     def set_ad_locations(self):
         logging.info('设置对应广告位')
+
         gg_button = self.driver.find_element_by_class_name(
             'adui-button-hasLeftIcon')
+        WebDriverWait(self.driver, 100).until(
+            lambda driver: gg_button.is_displayed() and gg_button.is_enabled())
+
         gg_button.click()
         # 设置广告形式
         self.driver.switch_to.window(self.driver.window_handles[-1])
@@ -107,6 +111,7 @@ class CreateAdPlan():
         input_elements = self.driver.find_elements_by_xpath('//*[@class="adui-input-base"]')
 
         if self.task['date_set']['date_module'] == '2':
+            print(self.task['date_set']['date_list'])
             select_elements = self.driver.find_elements_by_xpath('//*[@class="adui-radio-base adui-radio-small"]')
             for _ in select_elements:
                 if '长期投放' in _.text:
@@ -120,9 +125,21 @@ class CreateAdPlan():
             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)
 
             time.sleep(random.uniform(0.1, 0.2))
         else:
+            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)
@@ -162,7 +179,6 @@ class CreateAdPlan():
     def set_ad_cost(self):
         # 投放计划创建
         # 广告创建
-        # TODO:出价还没有进行对应设置
         logging.info('设置对应广告花销')
         day_cost = self.driver.find_element_by_css_selector('#budget_input')
         WebDriverWait(self.driver, 10).until(lambda x: (day_cost.is_displayed() and day_cost.is_enabled()))
@@ -175,22 +191,9 @@ class CreateAdPlan():
             bid_cost.send_keys(Keys.BACKSPACE)
         time.sleep(random.uniform(0.2, 0.3))
         bid_cost.send_keys(self.task['cost']['bid'])
-        time.sleep(5)
         self.driver.find_element_by_css_selector('#target_next_step').click()
         self.driver.save_screenshot('click{}.png'.format(time.time()))
 
-        time_element = self.driver.find_element_by_xpath('//*[@class="title-1CSarR7XgH"]')
-        ActionChains(self.driver).move_to_element(time_element).perform()
-        time.sleep(10)
-        self.driver.save_screenshot('click-2-{}.png'.format(time.time()))
-        for i in range(4):
-            if len(self.driver.find_elements_by_css_selector('#target_next_step')) == 0:
-                break
-            self.driver.find_element_by_css_selector('#target_next_step').click()
-            time.sleep(5)
-            ActionChains(self.driver).move_to_element(time_element).perform()
-            self.driver.save_screenshot('click-{}-{}.png'.format((2 + i), time.time()))
-
     def set_ad_human(self):
         # TODO:检查人群是否正常
         logging.info('设置人群包')

+ 3 - 7
wechat_action/create_ad_plan_idea.py

@@ -76,6 +76,7 @@ class IdeaAction:
 
             self.driver.find_element_by_xpath('//*[@id="select_canvas_ok_btn"]/span').click()
             '//*[@id="test_creative_next_step"]'
+            '//*[@id="select_canvas_ok_btn"]'
             time.sleep(random.uniform(0.1, 0.2))
 
     def idea_pic_gzh_botoom(self):
@@ -223,7 +224,7 @@ class IdeaAction:
     def idea_pyq(self):
         # TODO:添加idea_moudle,
         logging.info('朋友圈--文案设置')
-        WebDriverWait(self.driver, 100).until(
+        WebDriverWait(self.driver, 10).until(
             lambda driver: self.driver.find_element_by_xpath('//*[@class="ql-editor ql-blank"]'))
         self.driver.find_element_by_xpath(
             '//*[@class="ql-editor ql-blank"]'
@@ -232,7 +233,6 @@ class IdeaAction:
         time.sleep(random.uniform(0.1, 0.5))
 
         # 朋友圈标题设置
-        #TODO:各处的标题需要进行对应设置----------导致结果数据库里的标题与微信标题不相同
 
         for i in range(40):
             self.driver.find_element_by_xpath('//*[@class="input-2lFnByGCRh"]').send_keys(Keys.BACKSPACE)
@@ -256,11 +256,9 @@ class IdeaAction:
             if _.get_attribute("placeholder") == '输入关键字搜索推广页':
                 _.send_keys(self.task['idea']['jump_type_page_type']['layout_name'])
                 _.send_keys(Keys.RETURN)
-        # TODO:有空去除这个时间,使用等待
-        time.sleep(random.uniform(0.5, 1))
         WebDriverWait(self.driver, 30).until(
             lambda driver: self.driver.find_elements_by_xpath('//*[@class="adui-table-cellInner"]'))
-
+        time.sleep(random.uniform(0.5, 1))
         page_elements = self.driver.find_elements_by_xpath('//*[@class="adui-table-cellInner"]')
         for _ in page_elements:
             # 推广页的名字需要一模一样
@@ -269,8 +267,6 @@ class IdeaAction:
         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))
         if self.task['idea']['data_show'] == '2':

+ 1 - 0
wechat_action/login_ad.py

@@ -67,6 +67,7 @@ class LogIn:
 
     @staticmethod
     def cookies_save(log_ad):
+        logging.info('update db cookie')
         # 切换窗口,点击创建广告,切到广告页面
         log_ad.driver.switch_to.window(log_ad.driver.window_handles[0])
         WebDriverWait(log_ad.driver, 100).until(lambda driver: driver.find_element_by_class_name(