|
@@ -26,8 +26,8 @@ class CreateAdPlan():
|
|
|
def set_ad_title(self):
|
|
|
logging.info('开始设置广告标题')
|
|
|
title_ = self.driver.find_element_by_xpath('//*[@class="input-2lFnByGCRh"]')
|
|
|
- for i in range(40):
|
|
|
- title_.send_keys(Keys.BACKSPACE)
|
|
|
+ title_.send_keys(Keys.CONTROL+'a')
|
|
|
+ title_.send_keys(Keys.BACKSPACE)
|
|
|
title_.click()
|
|
|
time.sleep(0.1)
|
|
|
title_.send_keys(self.task['title'])
|
|
@@ -68,8 +68,9 @@ class CreateAdPlan():
|
|
|
WebDriverWait(self.driver, 10).until(
|
|
|
lambda driver: self.driver.find_element_by_css_selector('#PRODUCTTYPE_WECHAT'))
|
|
|
# 设置公众号名字
|
|
|
- for i in range(30):
|
|
|
- self.driver.find_element_by_xpath('//*[@id="test_plan_name"]/input').send_keys(Keys.BACKSPACE)
|
|
|
+ gzh_title=self.driver.find_element_by_xpath('//*[@id="test_plan_name"]/input')
|
|
|
+ gzh_title.send_keys(Keys.CONTROL+'a')
|
|
|
+
|
|
|
|
|
|
self.driver.find_element_by_xpath('//*[@id="test_plan_name"]/input').send_keys(
|
|
|
self.task['title'])
|
|
@@ -172,10 +173,12 @@ class CreateAdPlan():
|
|
|
self.driver.find_element_by_class_name('icon-3cAquX1RLZ').click()
|
|
|
self.driver.find_element_by_xpath('//*[@id="bid_objective_6"]/span[1]').click()
|
|
|
if self.task['plan_base'][1] == 'pyq':
|
|
|
- # self.driver.find_element_by_class_name('icon-3cAquX1RLZ').click()
|
|
|
- citys = self.driver.find_elements_by_class_name('checkbox-1pfRMRqv-R')
|
|
|
- for _ in citys:
|
|
|
- ActionChains(self.driver).move_to_element(_).click().perform()
|
|
|
+ try:
|
|
|
+ self.driver.find_element_by_class_name('icon-3cAquX1RLZ').click()
|
|
|
+ except:
|
|
|
+ citys = self.driver.find_elements_by_class_name('checkbox-1pfRMRqv-R')
|
|
|
+ for _ in citys:
|
|
|
+ ActionChains(self.driver).move_to_element(_).click().perform()
|
|
|
|
|
|
def set_ad_cost(self):
|
|
|
# 投放计划创建
|
|
@@ -188,22 +191,21 @@ class CreateAdPlan():
|
|
|
time.sleep(random.uniform(0.2, 0.3))
|
|
|
|
|
|
bid_cost = self.driver.find_element_by_xpath('//*[@id="price_input"]')
|
|
|
- for i in range(10):
|
|
|
- bid_cost.send_keys(Keys.BACKSPACE)
|
|
|
- time.sleep(random.uniform(0.2, 0.3))
|
|
|
+
|
|
|
+ bid_cost.send_keys(Keys.CONTROL + 'a')
|
|
|
+ bid_cost.send_keys(Keys.BACKSPACE)
|
|
|
+
|
|
|
+ time.sleep(random.uniform(0.1, 0.15))
|
|
|
bid_cost.send_keys(self.task['cost']['bid'])
|
|
|
self.driver.find_element_by_css_selector('#target_next_step').click()
|
|
|
|
|
|
def set_ad_human(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") == '输入名称搜索人群包'])
|
|
@@ -215,15 +217,14 @@ class CreateAdPlan():
|
|
|
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:
|
|
|
+ WebDriverWait(self.driver, 5).until(
|
|
|
+ lambda driver: human_infos[0].is_displayed() and human_infos[-1].is_enabled())
|
|
|
+ human_infos = self.driver.find_elements_by_class_name('adui-table-cellInner')
|
|
|
+ for i in range(int(len(human_infos) / 3)):
|
|
|
+ _ = human_infos[i*3]
|
|
|
if _.text in self.task['human_info_package']['name']:
|
|
|
_.click()
|
|
|
-
|
|
|
new_page_num_info = re.findall('\d+', page_text_element.text)
|
|
|
page_num_now = int(new_page_num_info[0].strip())
|
|
|
|