Exemplo n.º 1
0
class Sendmail:
    def __init__(self, runningtime):
        self.user_log = UserLog().get_log()
        self.read_ini = ReadIni(node='email')
        self.run_time = runningtime

    def send_mail(self):
        sender = self.read_ini.get_value('sender')
        passwd = self.read_ini.get_value('passwd')
        receiver = self.read_ini.get_value('receivers')
        mail_host = self.read_ini.get_value('mail_host')
        print(sender, passwd, receiver, mail_host)
        tm = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
        msg = MIMEMultipart()
        msg['Subject'] = Header(
            self.read_ini.get_value('header') + tm, 'utf-8')
        msg['From'] = sender
        msg['To'] = receiver

        #发送邮件正文
        msg.attach(
            MIMEText(
                self.read_ini.get_value('content') + str(self.run_time),
                'plain', 'utf-8'))
        #构造附件
        lists = []
        print(self.read_ini.get_value('path'))
        for root, dirs, files in os.walk(self.read_ini.get_value('path')):
            for file in files:
                if file.endswith(".html"):
                    lists.append(os.path.join(root, file))
        lists.sort(key=lambda f: os.stat(f).st_mtime)
        print(lists)
        lastmodified = lists[-1]
        att = MIMEText(open(lastmodified, 'rb').read(), 'base64', 'utf-8')
        att['Content-Type'] = 'application/octet-stream'
        att['Content-Disposition'] = 'attachment;filename=' + self.read_ini.get_value(
            'filename')
        msg.attach(att)

        #发送
        try:
            smtpObj = smtplib.SMTP()
            smtpObj.connect(mail_host, 25)
            smtpObj.login(sender, passwd)
            smtpObj.sendmail(sender, receiver, msg.as_string())
        except Exception as e:
            print(e)
            print('发送失败')
            self.user_log.warn("邮件发送失败:" + tm)
        else:
            print('发送成功')
            self.user_log.info('邮件发送成功')
        finally:
            smtpObj.close()
Exemplo n.º 2
0
class SetTempHandle():
    def __init__(self, driver):
        self.driver = driver
        self.setTemp_p = SetTempPage(driver)
        self.myDevice_p = MyDevicePage(driver)
        self.loger = UserLog().get_logger()

    def enter_setTemp(self):
        # sleep(10)
        # ele = self.myDevice_p.get_meat_thermometer()
        # ele.click()
        # 进入温度设置界面
        sleep(8)
        ele = self.myDevice_p.get_arrow()
        ele.click()

    #设置牛肉温度
    def setTemp_beef(self):
        #进入设备控制页面
        self.enter_meat_thermometer()
        #一分熟
        self.select_beef()
        self.one_cook()
        self.check_toast(msg="牛肉一分熟设置成功")
        # 三分熟
        self.select_beef()
        self.three_cook()
        self.check_toast(msg="牛肉三分熟设置成功")
        #五分熟
        self.select_beef()
        self.five_cook()
        self.check_toast(msg="牛肉五分熟设置成功")
        #七分熟
        self.select_beef()
        self.saven_cook()
        self.check_toast(msg="牛肉七分熟设置成功")
        #全熟
        self.select_beef()
        self.full_cook()
        self.check_toast(msg="牛肉全熟设置成功")

    # 设置羊肉温度
    def setTemp_veal(self):
        #一分熟
        self.select_veal()
        self.one_cook()
        self.check_toast()
        #三分熟
        self.select_veal()
        self.three_cook()
        self.check_toast()
        #五分熟
        self.select_veal()
        self.five_cook()
        self.check_toast()
        #七分熟
        self.select_veal()
        self.saven_cook()
        self.check_toast()
        #全熟
        self.select_veal()
        self.full_cook()
        self.check_toast()

    # 设置猪肉温度
    def setTemp_pig(self):
        self.select_pig()
        self.normal_cook()
        self.check_toast("猪肉温度设置成功")

    # 设置肌肉温度
    def setTemp_chicken(self):
        self.select_chicken()
        self.normal_cook()
        self.check_toast()

    # 设置火鸡温度
    def setTemp_turkey(self):
        self.select_turkey()
        self.normal_cook()
        self.check_toast()

    # 设置鱼肉温度
    def setTemp_fish(self):
        self.select_fish()
        self.normal_cook()
        self.check_toast()

    def setTemp_other(self):
        self.enter_meat_thermometer()
        self.select_other()
        self.custom_cook(title="其他预设温度")

    # 进入设备控制页面
    def enter_meat_thermometer(self):
        sleep(5)
        ele = self.myDevice_p.get_meat_thermometer()
        ele.click()

    #toast弹窗检查
    def check_toast(self, msg):
        # 用于生成xpath定位 相当于 "//*[@text='没有找到用户名或密码']"
        toast_message = "设置成功"
        message = '//*[@text=\'{}\']'.format(toast_message)
        # 获取toast提示框内容
        toast_element = WebDriverWait(
            self.driver, 20,
            0.5).until(lambda x: x.find_element_by_xpath(message))
        print(toast_element.text)
        #添加断言
        assert toast_element.text == "设置成功"
        self.loger.info(msg)

    #选择牛肉
    def select_beef(self):
        self.enter_setTemp()
        sleep(8)
        self.setTemp_p.get_beef_element().click()
        sleep(1)

    # 选择羊肉
    def select_veal(self):
        self.enter_setTemp()
        sleep(3)
        self.setTemp_p.get_veal_element().click()
        sleep(1)

    # 选择猪肉
    def select_pig(self):
        self.enter_setTemp()
        sleep(3)
        self.setTemp_p.get_pork_element().click()
        sleep(1)

    # 选择鸡肉
    def select_chicken(self):
        self.enter_setTemp()
        sleep(3)
        self.setTemp_p.get_chicken_element().click()
        sleep(1)

    # 选择火鸡
    def select_turkey(self):
        self.enter_setTemp()
        sleep(3)
        self.setTemp_p.get_turkey_element().click()
        sleep(1)

    # 选择鱼肉
    def select_fish(self):
        self.enter_setTemp()
        sleep(3)
        self.setTemp_p.get_fish_element().click()
        sleep(1)

    def select_other(self):
        self.enter_meat_thermometer()
        self.enter_setTemp()
        sleep(3)
        self.setTemp_p.get_other_element().click()
        sleep(2)
        self.setTemp_p.get_mix_add_element().click()
        sleep(2)

    #一分熟
    def one_cook(self):
        ele = self.driver.find_element_by_android_uiautomator(
            "new UiSelector().text(\"一分熟\")")
        ele.click()
        sleep(1)
        ele = self.setTemp_p.get_preset_element()
        ele.click()

    # 三分熟
    def three_cook(self):
        ele = self.driver.find_element_by_android_uiautomator(
            "new UiSelector().text(\"三分熟\")")
        ele.click()
        sleep(1)
        ele = self.setTemp_p.get_preset_element()
        ele.click()

    # 五分熟
    def five_cook(self):
        ele = self.driver.find_element_by_android_uiautomator(
            "new UiSelector().text(\"五分熟\")")
        ele.click()
        sleep(1)
        ele = self.setTemp_p.get_preset_element()
        ele.click()

    # 七分熟
    def saven_cook(self):
        ele = self.driver.find_element_by_android_uiautomator(
            "new UiSelector().text(\"七分熟\")")
        ele.click()
        sleep(1)
        ele = self.setTemp_p.get_preset_element()
        ele.click()

    # 全熟
    def full_cook(self):
        ele = self.driver.find_element_by_android_uiautomator(
            "new UiSelector().text(\"全熟\")")
        ele.click()
        sleep(1)
        ele = self.setTemp_p.get_preset_element()
        ele.click()

    #参考
    def normal_cook(self):
        ele = self.driver.find_element_by_android_uiautomator(
            "new UiSelector().text(\"参考\")")
        ele.click()
        sleep(1)
        ele = self.setTemp_p.get_preset_element()
        ele.click()

    #其他温度
    def custom_cook(self, title):
        slider = self.setTemp_p.get_title_edit_element()
        slider.send_keys(title)
        self.setTemp_p.get_add_done_element().click()
        # self.driver.implicitly_wait(2)
        # self.move_seekBar(slider,0.4)

    #滑动温度进度条
    def move_seekBar(self, element, percent):
        # 精度不是很准确,需自己调,当percent为1时可能不会移动到100%,可以尝试1.5或2
        # 获取拖动条的宽
        width = element.size.get("width")
        # 获取坐标
        x = element.location.get("x")
        y = element.location.get("y")
        print(x)
        print(y)
        # y = 2272+(2590-2272)/2
        # x = 1215
        # # [225, 2272][1215, 2590]
        print(width)