Esempio n. 1
0
    def upload_video(self):

        try:
            # 视频上传开始
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located((
                    By.XPATH,
                    "//div[@class='article-write_video-container-upload-local']"
                ))).click()
            time.sleep(1)
            Utils.upload(self.video_path)
            time.sleep(2)
            # try:
            #     Utils.upload(self.video_path)
            # except Exception as e:
            #     print(e)
            #     print("第二次打视频地址")
            # ---- end -----
            WebDriverWait(self.browser, 180).until(
                EC.presence_of_element_located(
                    (By.XPATH, "//p[contains(string(), '视频上传成功,处理中')]")))
            time.sleep(2)
            up_number = int(
                self.browser.find_element_by_xpath(
                    '/html/body/div[1]/div[4]/div/div[2]/div/div/div[2]/div/div[2]/span'
                ).text())
            if up_number == 0:
                self.msg = "上传数量不足"
                return True
                # self.up_num = up_number
        except Exception as e:
            self.msg = str(e) + "视频打开上传失败,请通知技术人员,并重新上传"
            self.returned_status()
            return True
Esempio n. 2
0
    def upload_img(self):
        try:
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located((
                    By.XPATH,
                    "//div[@class='widgets-selects_select_container']/a[contains(string(), '{}')]"
                    .format(self.video_type)))).click()
            image_div = self.browser.find_element_by_xpath(
                "//div[@class='article-write_box-form-coverImg']")
            self.browser.execute_script(
                "window.scrollTo(0, document.body.scrollHeight)")
            ActionChains(self.browser).move_to_element(image_div).perform()
            ActionChains(self.browser).move_to_element(image_div).perform()
            ActionChains(self.browser).move_to_element(image_div).perform()
            ActionChains(self.browser).move_to_element(image_div).perform()
            time.sleep(0.1)
            image_div.find_element_by_xpath(
                "//button[contains(string(), '从本地选择')]").click()
            time.sleep(0.5)
            print(self.image_path)
            Utils.upload(self.image_path)
            print("打图片地址上去")
            # Utils.upload(self.image_path)
            # print("丢图片地址异常")
            # time.sleep(2)

            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located((
                    By.XPATH,
                    "//div[@class='article-material-image-dialog_btn']//button[contains(string(), '保存') and not(@disabled)]"
                ))).click()
            time.sleep(2)
        except Exception as e:
            logger.error("上传封面失败,失败信息{}".format(e))
            self.msg = "上传失败,重新提交"
            return True
Esempio n. 3
0
    def go(self):
        user_type = self.account.split('@')
        self.browser.maximize_window()
        if len(user_type) > 1:
            self.browser.get("https://mp.dayu.com/")
            time.sleep(3)
            iframe = self.browser.find_element_by_tag_name("iframe")
            self.browser.switch_to.frame(iframe)
            self.browser.find_element_by_xpath("//input[@id='login_name']").send_keys(self.account)
            self.browser.find_element_by_xpath("//input[@id='password']").send_keys(self.password)
            slide = self.browser.find_element_by_xpath("//span[@id='nc_1_n1z']")

            action_chain = self.action_list(300)
            ActionChains(self.browser).click_and_hold(slide).perform()
            for action in action_chain:
                time.sleep(0.1)
                ActionChains(self.browser).move_by_offset(xoffset=action, yoffset=0).perform()
            ActionChains(self.browser).release().perform()
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located((By.XPATH, "//b[contains(string(), '验证通过')]")))
            self.browser.find_element_by_xpath("//input[@id='submit_btn']").click()
        else:
            self.browser.get('https://account.youku.com/partnerLogin.htm?pid=20170512PLF000867&callback=https%3A%2F%2Fmp.dayu.com%2Fyt-login-callback%3Fredirect_url%3D')
            time.sleep(3)
            self.browser.find_element_by_xpath('//*[@id="YT-ytaccount"]').send_keys(self.account)
            self.browser.find_element_by_xpath('//*[@id="YT-ytpassword"]').send_keys(self.password)
            self.browser.find_element_by_xpath('//*[@id="YT-nloginSubmit"]').click()
            time.sleep(3)
        try:
            self.browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/div/div/button[1]').click()
            time.sleep(2)
        except Exception:
            pass

        self.browser.maximize_window()
        self.cookies = self.get_cookies()

        # 切换视频上传页面
        time.sleep(1)
        self.browser.implicitly_wait(30)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//a[@id='w-menu-']"))).click()
        time.sleep(2)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//a[@data-path='/dashboard/video/write']"))).click()
        time.sleep(1)
        # ----- end -----

        try:
            # 切换视频上传页面
            time.sleep(1)
            self.browser.implicitly_wait(30)
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located((By.XPATH, "//a[@id='w-menu-']"))).click()
            time.sleep(2)
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located((By.XPATH, "//a[@data-path='/dashboard/video/write']"))).click()
            time.sleep(1)
            # ----- end -----
        except Exception as e:
            pass

        # 视频上传开始
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='article-write_video-container-upload-local']"))).click()
        time.sleep(1)
        Utils.upload(self.video_path)
        time.sleep(2)
        try:
            Utils.upload(self.video_path)
        except Exception as e:
            print(e)
            print("第二次打视频地址")
        if int(self.browser.find_element_by_xpath(
                '/html/body/div[1]/div[4]/div/div[2]/div/div/div[2]/div/div[2]/span').text) == 0:
            self.msg = "次数不足"
            return
        # ---- end -----
        WebDriverWait(self.browser, 180).until(
            EC.presence_of_element_located((By.XPATH, "//p[contains(string(), '视频上传成功,处理中')]")))
        time.sleep(2)

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='w-form-field-content']/input"))).clear()
        self.browser.find_element_by_xpath("//div[@class='w-form-field-content']/input").clear()
        time.sleep(0.1)
        self.browser.find_element_by_xpath("//div[@class='w-form-field-content']/input").send_keys([Keys.BACKSPACE for i in range(1, 100)] + [i for i in self.title])
        time.sleep(0.1)
        try:
            js = "var q=document.documentElement.scrollTop=100000"
            self.browser.execute_script(js)
        except Exception as e:
            print(e)
            print("滑动至底部失败")
        self.browser.find_element_by_xpath("//div[@class='w-form-field-content']/textarea").clear()
        time.sleep(0.1)
        self.browser.find_element_by_xpath("//div[@class='w-form-field-content']/textarea").send_keys([Keys.BACKSPACE for i in range(1, 100)] + [i for i in self.title])
        time.sleep(0.1)
        self.build_tags(self.tags)

        try:
            js = "var q=document.documentElement.scrollTop=100000"
            self.browser.execute_script(js)
        except Exception as e:
            print(e)
            print("滑动至底部失败")

            #选择分类
        try:
            self.browser.find_element_by_xpath("//div[@class='widgets-selects_container']").click()
        except Exception as e:
            print("选择分类失败")
        # try:
        #     self.browser.find_element_by_xpath('/html/body/div[1]/div[4]/div/div[2]/div/div/div[1]/div[7]/div/div/div[1]/i').click()
        # except Exception as e:
        #     print(e)
        #     print("第二次选择分分类失败")
        # self.browser.find_element_by_xpath("//div[@class='widgets-selects_container']").click()
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='widgets-selects_select_container']/a[contains(string(), '{}')]".format(self.video_type)))).click()
        image_div = self.browser.find_element_by_xpath("//div[@class='article-write_box-form-coverImg']")
        self.browser.execute_script("window.scrollTo(0, document.body.scrollHeight)")
        ActionChains(self.browser).move_to_element(image_div).perform()
        try:
            ActionChains(self.browser).move_to_element(image_div).perform()
            ActionChains(self.browser).move_to_element(image_div).perform()
            ActionChains(self.browser).move_to_element(image_div).perform()
        except Exception as e:
            print("这是去点击上传封面图片的框,")


        time.sleep(0.1)
        image_div.find_element_by_xpath("//button[contains(string(), '从本地选择')]").click()
        time.sleep(0.5)
        print(self.image_path)

        Utils.upload(self.image_path)
        print("打图片地址上去")
        try:
            Utils.upload(self.image_path)
        except Exception as e:
            print("丢图片地址异常")
        time.sleep(2)

        WebDriverWait(self.browser, 30).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='article-material-image-dialog_btn']//button[contains(string(), '保存') and not(@disabled)]"))).click()
        time.sleep(2)
        # try:
        #     WebDriverWait(self.browser, 2).until(
        #         EC.presence_of_element_located((By.XPATH, "//div[@class='w-radio w-radio_checked iconfont wm-icon-yes']"))).click()
        # except TimeoutException:
        #     pass
        time.sleep(5)
        WebDriverWait(self.browser, 30).until(
            EC.presence_of_element_located((By.XPATH, "//button[contains(string(), '发表')]"))).click()
        time.sleep(1)

        #判断是否标题党
        try:
            WebDriverWait(self.browser, 3).until(
                EC.text_to_be_present_in_element((By.XPATH, "/html/body/div[4]/div/div[2]/div/div[1]"), '平台')
            )
            self.msg = "标题党嫌疑,请再改改"
            return
        except Exception as e:
            print("暂无标题党嫌疑")
        try:
            WebDriverWait(self.browser, 4).until(
                EC.element_to_be_clickable((By.XPATH, '/html/body/div[4]/div/div[2]/div/div[2]/div/button[1]'))
            )
            self.msg = "标题党嫌疑,请你改下,并重新提交"
            return
        except Exception as e:
            logger.info("无标题党嫌疑")
        # ---- end ----
        # 确认发布
        time.sleep(2)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//button[contains(string(), '确认发表')]"))).click()
        # ---- end ----
        # 获取视频信息
        time.sleep(2)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//ul[@class='w-list']/li[1]//div[@class='w-list-item-content-detail']/h3/a"))).click()
        self.status = True
        time.sleep(2)
        ahref = self.browser.find_element_by_xpath("//div[@class='contents-publish-article-preview']/iframe").get_attribute("src")
        info_frame = self.browser.find_element_by_xpath("//div[@class='contents-publish-article-preview']/iframe")
        self.browser.switch_to.frame(info_frame)
        vhref = self.browser.find_element_by_xpath("//div[@class='article-content simple-ui']//iframe").get_attribute("src")
        self.aid = self.get_aid(ahref)
        self.vid = self.get_vid(vhref)
Esempio n. 4
0
    def go(self):
        self.browser.get("https://mp.qutoutiao.net/login")
        # 登录开始
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located(
                (By.XPATH, "//i[@class='login-icon']/following-sibling::input[1]"))).send_keys(self.account)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//i[@class='pwd-icon']/following-sibling::input[1]"))).send_keys(
            self.password)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//button[@id='submit-login']"))).click()
        # 登录结束
        time.sleep(2)
        self.browser.maximize_window()

        # 跳转发布开始
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//span[contains(string(), '发布内容')]"))).click()
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//p[contains(string(), '发布视频')]"))).click()
        #手机验证码
        try:
            WebDriverWait(self.browser, 10).until(
                EC.element_to_be_clickable((By.XPATH, '//*[@id="app"]/div[2]/div[2]/div/div[2]/div/div[2]/div/div[3]/div/div[3]/span/button[1]/span'))
            )
            self.msg = '需要手机验证码,请延时提交'
            return
        except Exception:
            pass
        # *** 处理发文规范弹窗 ***
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//i[@class='el-message-box__close el-icon-close']"))).click()
        time.sleep(1)
        # 跳转发布结束

        # 开始发视频
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//input[@id='inp-video-file']"))).click()
        time.sleep(1)  # 等待上传框体加载
        Utils.upload(self.video_path)
        WebDriverWait(self.browser, 100).until(
            EC.presence_of_element_located((By.XPATH, "//span[contains(string(), '上传成功')]")))
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located(
                (By.XPATH, "//form[@class='el-form el-form--label-left']/div[1]//input"))).send_keys(
            [Keys.BACKSPACE for i in range(1, 100)] + [i for i in self.title])  # 发送标题
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//textarea[@class='el-textarea__inner']"))).send_keys(
            self.content)  # 发送描述
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//input[@placeholder='请选择分类']"))).click()
        time.sleep(1)  # 等待分类加载
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//dd[contains(string(), '{}')]".format(self.video_type)))).click()
        time.sleep(1)
        self.build_tag(self.tags)
        time.sleep(0.5)
        # --  选择封面开始
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='el-upload']"))).click()
        time.sleep(1)  # 等待封面框体加载
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//p[contains(string(), '自定义封面')]"))).click()
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//span[contains(string(), '选择图片')]"))).click()
        time.sleep(1)  # 等待上传框体加载
        Utils.upload(self.image_path)
        time.sleep(3)  # 等待图片上传完成  # TODO 待处理
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH,
                                            "//div[@class='el-dialog__wrapper dialog-img-cropper']//span[contains(string(), '确 定')]")))
        time.sleep(1)
        self.browser.find_element_by_xpath("//div[@class='el-dialog__wrapper dialog-img-cropper']//span[contains(string(), '确 定')]").click()
        # 封面选择结束
        # 视频信息构造结束
        time.sleep(3)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located(
                (By.XPATH, "//button[@class='el-button el-button--primary']//span[contains(string(), '发布')]"))).click()
        try:
            WebDriverWait(self.browser, 3).until(
                EC.presence_of_element_located((By.XPATH, "//div[@class='el-message-box__message']")))
            time.sleep(2)
            self.msg = self.browser.find_element_by_xpath("//div[@class='el-message-box__message']").text
            if self.msg:
                return
        except TimeoutException:
            pass
        WebDriverWait(self.browser, 10).until(EC.presence_of_element_located((By.XPATH, "//button[@class='el-button el-button--primary el-button--medium']//span[contains(string(), '确认发布')]")))   # TODO
        time.sleep(1)
        self.browser.find_element_by_xpath("//button[@class='el-button el-button--primary el-button--medium']//span[contains(string(), '确认发布')]").click()
        time.sleep(2)
        self.status = True
Esempio n. 5
0
    def go(self):
        # 登录
        self.browser.get("https://sso.toutiao.com/login/?service=https://mp.toutiao.com/sso_confirm/?redirect_url=JTJG")
        self.browser.implicitly_wait(30)
        self.browser.find_element_by_xpath("//div[@id='login-type-account']").click()
        time.sleep(2)
        self.browser.find_element_by_xpath("//input[@id='user-name']").send_keys(self.account)
        self.browser.find_element_by_xpath("//input[@id='password']").send_keys(self.password)
        time.sleep(0.1)
        self.browser.find_element_by_xpath("//button[@id='bytedance-login-submit']").click()
        self.handler_slider_verify()  # 处理滑块
        time.sleep(2)
        self.browser.maximize_window()
        # --- 登录结束 ----
        self.cookies = self.get_cookies()

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//span[contains(string(), '西瓜视频')]"))).click()
        self.browser.implicitly_wait(20)
        # 跳转视屏上传页面
        self.browser.get("https://mp.toutiao.com/profile_v3/xigua/upload-video")
        # 视屏上传开始
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='undefined upload-handler ']"))).click()
        time.sleep(1)  # 等待上传框体加载
        Utils.upload(self.video_path)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//span[contains(string(), '上传成功')]")))  # 等待视频上传完成
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='article-title-wrap-new']/input"))).clear()
        self.browser.find_element_by_xpath("//div[@class='article-title-wrap-new']/input").send_keys([Keys.BACKSPACE for i in range(1, 100)] + [i for i in self.title])
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//span[@class='tui-input-wrapper']/textarea"))).clear()
        self.browser.find_element_by_xpath("//span[@class='tui-input-wrapper']/textarea").send_keys([Keys.BACKSPACE for i in range(1, 100)] + [i for i in self.content])

        if self.is_origin:  # 是否原创
            # WebDriverWait(Browser, 10).until(
            #     EC.presence_of_element_located((By.XPATH, "//div[@class='edit-cell-new add-origin']//div[@class='tui2-radio']/input"))).click()
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located(
                    (By.XPATH, "//span[@class='tui2-radio-text' and contains(string(), '声明原创')]/..//input"))).click()
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located((By.XPATH, "//button[contains(string(.), '确 定')]"))).click()
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located(
                    (By.XPATH, "//span[@class='tui2-radio-text' and contains(string(), '非独家')]/..//input"))).click()
            if self.is_first:  # 是否首发
                WebDriverWait(self.browser, 10).until(
                    EC.presence_of_element_located(
                        (By.XPATH, "//span[@class='tui2-radio-text' and contains(string(), '非首发')]/..//input"))).click()
                WebDriverWait(self.browser, 10).until(
                    EC.presence_of_element_located(
                        (By.XPATH, "//div[@class='m-video-first']/div[@class='edit-cell-new'][1]//input"))).send_keys(self.first_url)
                WebDriverWait(self.browser, 10).until(
                    EC.presence_of_element_located(
                        (By.XPATH, "//div[@class='m-video-first']/div[@class='edit-cell-new'][2]//input"))).send_keys(self.first_platform)
                WebDriverWait(self.browser, 10).until(
                    EC.presence_of_element_located(
                        (By.XPATH, "//div[@class='m-video-first']/div[@class='edit-cell-new'][3]//input"))).send_keys(self.first_uname)
            else:
                WebDriverWait(self.browser, 10).until(
                    EC.presence_of_element_located(
                        (By.XPATH, "//span[@class='tui2-radio-text' and contains(string(), '首发')]/..//input"))).click()
        else:
            WebDriverWait(self.browser, 10).until(
                EC.presence_of_element_located(
                    (By.XPATH, "//span[@class='tui2-radio-text' and contains(string(), '非原创')]/..//input"))).click()
        # 原创结束

        self.build_tags(self.tags)
        # self.browser.find_element_by_xpath("//div[@class='edit-cell-new video-tag show-short']//input").send_keys("gsdfg")
        # self.browser.find_element_by_xpath("//div[@class='edit-cell-new video-tag show-short']//input").send_keys(Keys.ENTER)

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located(
                (By.XPATH, "//div[@class='Select tui-select Select--single']/div[@class='Select-control']"))).click()
        time.sleep(0.1)
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@aria-label='{}']".format(self.video_type)))).click()
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='submit btn ']"))).click()
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='m-pgc-video-manage']")))
        self.status = True
        # self.browser.close()
        # 获取信息开始
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='m-articles no-count']")))  # 确认视频列表加载
        href = WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//div[@class='m-articles no-count']/div[1]//a[@class='title-wrap']"))).get_attribute("href")
        self.aid = self.get_aid(href)
        self.vid = self.get_vid(href)