import time import random from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.wait import WebDriverWait class IdeaAction: def __init__(self, driver, task): self.driver = driver self.task = task def push_page(self): self.driver.find_element_by_class_name('adui-button-small').click() select_input = self.driver.find_element_by_class_name('adui-input-base') select_input.send_keys('原生') self.driver.find_element_by_id('select_canvas_ok_btn').click() time.sleep(random.uniform(1, 2)) def idea_banner_gzh_bottom(self): self.driver.find_element_by_css_selector('#test_material_type_135 > span.inputWrapper-3fBModc9zM > i').click() wen_input = self.driver.find_element_by_class_name('input-3MbKvywHL2') wen_input.send_keys('nihaonihao') def idea_pic_gzh_bottom(self): # TODO:添加try,catch因为图片上传可能慢 WebDriverWait(self.driver, 10).until(lambda driver: driver.find_element_by_class_name('adui-button-small')) self.driver.find_element_by_class_name("webuploader-element-invisible").send_keys( "/usr/share/wallpapers/deepin/Beach_by_Samuel_Scrimshaw.jpg") WebDriverWait(self.driver, 5).until(lambda driver: driver.find_element_by_class_name('btnFist-uueBS6DQFa')) self.driver.find_element_by_class_name('btnFist-uueBS6DQFa').click() WebDriverWait(self.driver, 10).until(lambda driver: driver.find_element_by_id('test_progress_confirm')) # 等待上传完毕,因为完成按钮本身可以 time.sleep(10) self.driver.find_element_by_id('test_progress_confirm').click() time.sleep(random.uniform(1, 2)) self.driver.save_screenshot('set_page_pic.png') self.push_page() self.driver.save_screenshot('set_page_idea.png') def idea_movie_gzh_movie(self): WebDriverWait(self.driver, 10).until( lambda driver: driver.find_element_by_class_name('webuploader-element-invisible')) self.driver.find_element_by_class_name('webuploader-element-invisible').send_keys( '/home/cxyu/Downloads/上门龙婿-竖3(1).mp4') suc_button = self.driver.find_element_by_id('test_progress_confirm') WebDriverWait(self.driver, 1000).until(lambda x: (suc_button.is_displayed() and suc_button.is_enabled())) self.driver.find_element_by_id('test_progress_confirm').click() self.driver.save_screenshot('set_page_pic.png') self.push_page() text_input = self.driver.find_element_by_css_selector('#reward_video_desc > div > input') text_input.send_keys('asdf') def idea_big_pic(self): # 设置图片 WebDriverWait(self.driver, 10).until( lambda driver: self.driver.find_element_by_class_name('webuploader-element-invisible')) page_input = self.driver.find_element_by_class_name('webuploader-element-invisible') page_input.send_keys('/usr/share/wallpapers/deepin/Beach_by_Samuel_Scrimshaw.jpg') try: WebDriverWait(self.driver, 100).until(lambda driver: driver.find_element_by_xpath( '//*[@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]')) self.driver.find_element_by_xpath( '//*[@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() WebDriverWait(self.driver, 100).until( lambda driver: self.driver.find_element_by_xpath('//*[@id="test_progress_confirm"]')) suc_button = self.driver.find_element_by_xpath('//*[@id="test_progress_confirm"]') WebDriverWait(self.driver, 100).until(lambda driver: suc_button.is_displayed() and suc_button.is_enabled()) suc_button.click() except: pass idea_dic = self.task['idea'] select_elements = self.driver.find_elements_by_xpath('//*[@class="label-2ZOAbuO31o"]') input_elements = self.driver.find_elements_by_xpath('//*[@class="input-3MbKvywHL2"]') # 信息栏 if idea_dic['info_type'] == 1: # 头像 for _ in select_elements: if _.text == '头像昵称型': _.click() if idea_dic['info_type'] == 2: # 文案 for _ in select_elements: if _.text == '文案型': _.click() for _ in input_elements: # 信息栏文案 if _.get_attribute("placeholder") == '信息栏文案': _.send_keys(idea_dic['info_type-content']) time.sleep(random.uniform(0.1, 0.2)) # 图文标题 '//*[@id="test_first_line_input"]/div/input' self.driver.find_element_by_xpath('//*[@id="test_first_line_input"]/div/input').send_keys(idea_dic['title']) time.sleep(random.uniform(0.1, 0.2)) # 广告文案 for _ in input_elements: if _.get_attribute("placeholder") == '请输入首行文案': _.send_keys(idea_dic['content_one']) time.sleep(random.uniform(0.1, 0.2)) if _.get_attribute("placeholder") == '请输入次行文案': _.send_keys(idea_dic['content_two']) time.sleep(random.uniform(0.1, 0.2)) if _.get_attribute("placeholder") == '请输入第三行文案(选填)': _.send_keys(idea_dic['content_three']) time.sleep(random.uniform(0.1, 0.2)) # 标签展示 for _ in select_elements: if _.text == '不启用' and idea_dic['lable_type'] == 1: _.click() if _.text == '好友关注量标签' and idea_dic['lable_type'] == 2: _.click() if _.text == '转化目标量标签' and idea_dic['lable_type'] == 3: _.click() time.sleep(random.uniform(0.1, 0.2)) # 点击跳转 for _ in select_elements: if _.text == '公众号详情页' and idea_dic['jump_type'] == 2: _.click() time.sleep(random.uniform(0.1, 0.2)) # 按钮文案 for _ in select_elements: if _.text == '立即咨询' and idea_dic['button_type'] == 2: _.click() if _.text == '立即申请' and idea_dic['button_type'] == 3: _.click() if _.text == '阅读小说' and idea_dic['button_type'] == 4: _.click() time.sleep(random.uniform(0.1, 0.2)) if idea_dic['jump_type'] == 1: # 点击按钮跳转 for _ in select_elements: if _.text == '一键关注' and idea_dic['jump_type-button_type'] == 2: _.click() time.sleep(random.uniform(0.1, 0.2)) # 原生推广页选择 self.driver.find_element_by_xpath('//*[@id="choose_template"]').click() select_elements = self.driver.find_elements_by_xpath('//*[@class="inputWrapper-3fBModc9zM"]') for _ in select_elements: if _.get_attribute("placeholder") == '输入关键字搜索推广页': _.send_keys(idea_dic['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 == idea_dic['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)) def idea_pyq(self): pass