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
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