Exemple #1
0
    def _start_to_send_conpons(self):
        
        driver = self.driver
        
        driver.switch_to_default_content()
        
        
        url = "http://ecrm.taobao.com/mallcoupon/got_bonus.htm"
        self.logger.info("start to get bonus:%s" % url)

        driver.get(url)
        
        
        iframe = self.client.e("#couponlist")
        
        if iframe is None:
            return
        
        #self.logger.info("!!!!!!ifame str:%s" % json.dumps(iframe.element))
        #self.logger.info("!!!!!!ifame:%s" % iframe.element)
        driver.switch_to_frame(iframe)
        
        conpons  = self.client.es("#J_coupon_list .row")
        
        if len(conpons) == 0:
            self.empty_retry = self.empty_retry + 1
        else:
            self.empty_retry = 0
            
        self.logger.info("Found conpons:%s, in user:%s" % (len(conpons), self.taobao_name))
        
        self._writer = None
        
        from sailing.core import RowTask
        
        task = RowTask("test.csv", "done.csv")
        
        user_names = task.task_list()
        for row in conpons:
            title = row.e(".td-shop a")
            shop_name = title.text
            self.logger.info(u"shop name:%s" % shop_name)
            if not shop_name == u'青沁堂':
                continue
            
            btn = row.e("a.J_transfer") 
            try:
                sendTo = user_names.next()
            except Exception, e:
                self._has_more_user = False
                self.logger.info(u"all user is send.., e:%s" % e)
                return
            
            self.logger.info(u"number:%s, send to:%s" % (btn.attr('couponnumber'), sendTo))
            btn.click()
            
            time.sleep(0.2)
            
            nameInput = self.client.e("form[name=transfer] #username")            
            nameInput.send_keys(sendTo)
            
            submitInput = self.client.e("form[name=transfer] input[type=submit]")            
            submitInput.click()

            time.sleep(0.2)
            title = row.e(".td-status").text
            self.logger.info("current user info:%s" % title)
            if sendTo in title:
                task.done_task(sendTo)
    
                self.logger.info(u"current sent user:%s" % task.done_count)
            elif self._check_user_not_found():
                close = self.client.e(".ks-dialog a.ks-ext-close")
                if close:
                    close.click()
                task.done_task(sendTo)
            elif self._check_max_send():
                self.taobao_task.done_task(self.taobao_name)
                self._stop_to_send(sendTo)
                break
            elif self._check_not_done():
                title = row.e(".td-status").text
                if sendTo in title:
                    task.done_task(sendTo)
                    self.logger.info(u"current sent user:%s" % task.done_count)
                else:
                    #只截屏,不推出操作。可能是网速太慢,还可以重试。
                    self._stop_to_send(sendTo)
                    self._has_more_user = True 
                    break
            else:
                self.logger.info(u"failed to send user")
                self._stop_to_send(sendTo)
                break  
Exemple #2
0
    def _start_to_send_conpons(self):

        driver = self.driver

        driver.switch_to_default_content()

        url = "http://ecrm.taobao.com/mallcoupon/got_bonus.htm"
        self.logger.info("start to get bonus:%s" % url)

        driver.get(url)

        iframe = self.client.e("#couponlist")

        if iframe is None:
            return

        #self.logger.info("!!!!!!ifame str:%s" % json.dumps(iframe.element))
        #self.logger.info("!!!!!!ifame:%s" % iframe.element)
        driver.switch_to_frame(iframe)

        conpons = self.client.es("#J_coupon_list .row")

        if len(conpons) == 0:
            self.empty_retry = self.empty_retry + 1
        else:
            self.empty_retry = 0

        self.logger.info("Found conpons:%s, in user:%s" %
                         (len(conpons), self.taobao_name))

        self._writer = None

        from sailing.core import RowTask

        task = RowTask("test.csv", "done.csv")

        user_names = task.task_list()
        for row in conpons:
            title = row.e(".td-shop a")
            shop_name = title.text
            self.logger.info(u"shop name:%s" % shop_name)
            if not shop_name == u'青沁堂':
                continue

            btn = row.e("a.J_transfer")
            try:
                sendTo = user_names.next()
            except Exception, e:
                self._has_more_user = False
                self.logger.info(u"all user is send.., e:%s" % e)
                return

            self.logger.info(u"number:%s, send to:%s" %
                             (btn.attr('couponnumber'), sendTo))
            btn.click()

            time.sleep(0.2)

            nameInput = self.client.e("form[name=transfer] #username")
            nameInput.send_keys(sendTo)

            submitInput = self.client.e(
                "form[name=transfer] input[type=submit]")
            submitInput.click()

            time.sleep(0.2)
            title = row.e(".td-status").text
            self.logger.info("current user info:%s" % title)
            if sendTo in title:
                task.done_task(sendTo)

                self.logger.info(u"current sent user:%s" % task.done_count)
            elif self._check_user_not_found():
                close = self.client.e(".ks-dialog a.ks-ext-close")
                if close:
                    close.click()
                task.done_task(sendTo)
            elif self._check_max_send():
                self.taobao_task.done_task(self.taobao_name)
                self._stop_to_send(sendTo)
                break
            elif self._check_not_done():
                title = row.e(".td-status").text
                if sendTo in title:
                    task.done_task(sendTo)
                    self.logger.info(u"current sent user:%s" % task.done_count)
                else:
                    #只截屏,不推出操作。可能是网速太慢,还可以重试。
                    self._stop_to_send(sendTo)
                    self._has_more_user = True
                    break
            else:
                self.logger.info(u"failed to send user")
                self._stop_to_send(sendTo)
                break