def test_003_samba(self):
        u'''samba服务器(部分型号暂未支持)'''

        host = gettelnet('host')
        ftpSmaba = NetworkSharingPage(self.driver, self.url)
        #1、未开启验证无法登录
        user_name = "anonymous"
        pass_word = ""
        my_name = "anyname"
        domain_name = ""
        remote_smb_IP = host
        smb = SMBConnection(user_name,
                            pass_word,
                            my_name,
                            domain_name,
                            use_ntlm_v2=True)
        try:
            smb.connect(remote_smb_IP, 139, timeout=3)
        except ConnectionRefusedError:
            print('未开启samba 无法访问 验证通过')

        #2、打开samba
        sambaEn = ftpSmaba.getAttribute_byName(ftpSmaba.sambaEnS, 'checked')
        if sambaEn != 'true':
            ftpSmaba.click_sambaEn()
            ftpSmaba.click_save()
        time.sleep(13)
        sambaEn = str(
            ftpSmaba.getAttribute_byName(ftpSmaba.sambaEnS, 'checked'))
        self.assertEqual(sambaEn, 'true', msg='samba开启 失败')
        #samba登录
        smb = SMBConnection(user_name,
                            pass_word,
                            my_name,
                            domain_name,
                            use_ntlm_v2=True)
        try:
            smb.connect(remote_smb_IP, 139, timeout=3)
        except socket.timeout:
            raise Exception('samba服务无法访问')
        shareslist = smb.listShares()  # 列出共享目录 这里只能看到1级菜单“1”
        smb.close()
        n = []
        for i in shareslist:
            n.append(i.name)
        print(n)
        nn = []
        for x in n:
            if '$' not in x:
                nn.append(x)
                print(nn)
        #3、打开验证
        if '1' in nn:
            pass
        else:
            raise Exception('samba验证失败')  # 如果没有则报错

        self.driver.quit()
        logger.info('test_003_samba passed')
    def test_001_ftpServer(self):
        u'''ftp服务器基本设置,ftp查看'''
        host = gettelnet('host')
        ftpSmaba = NetworkSharingPage(self.driver, self.url)
        # 1、设置ftp基本信息
        ftpSmaba.click_choosml()
        time.sleep(1)
        ftpSmaba.input_names('1')
        ftpSmaba.click_FTP_DIR_1_check()
        ftpSmaba.click_modal_FTP()
        time.sleep(1)
        try:  #以访第一次选中后 第二次点击被取消 从而未选中共享目录
            self.driver.implicitly_wait(1)
            ftpSmaba.find_tips_show_inf()
        except NoSuchElementException:
            pass
        else:
            ftpSmaba.click_FTP_DIR_1_check()
            ftpSmaba.click_modal_FTP()
            time.sleep(3)
        self.driver.implicitly_wait(10)
        ftpEn = ftpSmaba.getAttribute_byName(ftpSmaba.ftpEns, 'checked')
        print(ftpEn)
        if ftpEn != 'true':
            ftpSmaba.click_ftpEn()
            time.sleep(1)
        defaultPort = str(
            ftpSmaba.getAttribute_byName(ftpSmaba.ftpports, 'value'))
        self.assertEqual(defaultPort, '21', msg='ftp默认端口不为21')
        ftpSmaba.click_save()
        time.sleep(1)
        enableDevice = ftpSmaba.getAttribute_byId(ftpSmaba.enableDevices,
                                                  'checktype')
        print(enableDevice)
        if enableDevice != '1':  #1为打开网络共享
            ftpSmaba.click_enableDevice()
            time.sleep(3)
        ftpEn = ftpSmaba.getAttribute_byName(ftpSmaba.ftpEns, 'checked')
        enableDevice = ftpSmaba.getAttribute_byId(ftpSmaba.enableDevices,
                                                  'checktype')
        self.assertEqual(ftpEn, 'true', msg='启用FTP服务器 失败')
        self.assertEqual(enableDevice, '1', msg='网络共享 启用失败')
        time.sleep(10)
        #2、ftp查看目录文件
        IP = host
        Port = 21
        ftp = ftplib.FTP()
        ftp.encoding = 'utf-8'
        try:
            ftp.connect(host=IP, port=Port, timeout=5)
        except socket.error or socket.gaierror:
            raise Exception("无法访问FTP服务")
        try:
            ftp.login(user='******')  # 相当于没有验证账号密码
        except ftplib.error_perm:
            raise Exception("FTP账号密码验证错误")
        ftpFile = ftp.nlst('1')  # 获取指定目录下的文件
        # print('ftpFile', ftpFile)
        ftp.quit()
        #过滤掉中文和带空格的
        zhmodel = re.compile(u'[\u4e00-\u9fa5]')  # 检查中文
        ftpFile2 = []
        for file in ftpFile:
            if ' ' not in file:
                ftpFile2.append(file[2:])
        for i in ftpFile2:
            if zhmodel.search(i):
                ftpFile2.remove(i)
        # print('ftpFile2:',ftpFile2)
        # 3、telnet后台查看目录文件
        # 连接Telnet服务器
        hostip = gettelnet('host')
        port = gettelnet('port')
        username = bytes(getweb('User'), encoding="utf8")
        password = bytes(getweb('Passwd'), encoding="utf8")
        tn = telnetlib.Telnet(host=hostip, port=port, timeout=10)
        tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
        # 输入登录用户名
        tn.read_until(b'login:'******'Password:'******'#')
        tn.write(b'cd /ftpRoot/1 ; ls' + b'\n')
        # 输出结果,判断
        time.sleep(1)
        result = str(tn.read_very_eager())  # 只会存最后一条命令的结果
        print('-------------------输出结果------------------------')
        # 命令执行结果
        # print('result:', result)
        tn.close()  # tn.write('exit\n')

        #4、判断对比 ftp查看内容在telnet查看的目录中
        for i in ftpFile2:
            if result.count(i):
                pass
            else:
                raise Exception(' 验证失败')  # 如果没有则报错

        self.driver.quit()
        logger.info('test_001_ftpServer passed')
    def test_002_ftpPort(self):
        u'''FTP端口'''

        host = gettelnet('host')
        portwarnA = getAssertText('portwarnA')
        ftpSmaba = NetworkSharingPage(self.driver, self.url)

        # defaultPort=str(self.driver.find_element_by_name('ftpport').get_attribute('value'))
        # self.assertEqual(defaultPort,'21',msg='ftp默认端口不为21') #001已验证

        #修改端口为22
        ftpSmaba.input_ftpport('22')
        ftpSmaba.click_save()
        time.sleep(10)
        Port1 = str(ftpSmaba.getAttribute_byName(ftpSmaba.ftpports, 'value'))
        self.assertEqual(Port1, '22', msg='ftp修改端口不为22')
        # ftp验证端口
        IP = host
        ftp = ftplib.FTP()
        ftp.encoding = 'utf-8'
        try:
            ftp.connect(host=IP, port=22, timeout=5)
        except socket.error or socket.gaierror:
            raise Exception("无法访问FTP服务")
        try:
            ftp.login(user='******')  # 相当于没有验证账号密码
        except ftplib.error_perm:
            raise Exception("FTP账号密码验证错误")
        ftpFile = ftp.nlst('1')  # 获取指定目录下的文件
        print('ftpFile', ftpFile)
        ftp.quit()
        # 修改端口为65534
        ftpSmaba.input_ftpport('65534')
        ftpSmaba.click_save()
        time.sleep(10)
        Port1 = str(ftpSmaba.getAttribute_byName(ftpSmaba.ftpports, 'value'))
        self.assertEqual(Port1, '65534', msg='ftp修改端口不为65534')
        # ftp验证端口
        ftp = ftplib.FTP()
        ftp.encoding = 'utf-8'
        try:
            ftp.connect(host=IP, port=65534, timeout=5)
        except socket.error or socket.gaierror:
            raise Exception("无法访问FTP服务")
        try:
            ftp.login(user='******')  # 相当于没有验证账号密码
        except ftplib.error_perm:
            raise Exception("FTP账号密码验证错误")
        ftpFile = ftp.nlst('1')  # 获取指定目录下的文件
        print('ftpFile', ftpFile)
        ftp.quit()
        # 修改端口为1
        ftpSmaba.input_ftpport('1')
        ftpSmaba.click_save()
        time.sleep(10)
        Port1 = str(ftpSmaba.getAttribute_byName(ftpSmaba.ftpports, 'value'))
        self.assertEqual(Port1, '1', msg='ftp修改端口不为1')
        # ftp验证端口
        ftp = ftplib.FTP()
        ftp.encoding = 'utf-8'
        try:
            ftp.connect(host=IP, port=1, timeout=5)
        except socket.error or socket.gaierror:
            raise Exception("无法访问FTP服务")
        try:
            ftp.login(user='******')  # 相当于没有验证账号密码
        except ftplib.error_perm:
            raise Exception("FTP账号密码验证错误")
        ftpFile = ftp.nlst('1')  # 获取指定目录下的文件
        print('ftpFile', ftpFile)
        ftp.quit()

        #验证提示信息
        ftpSmaba.input_ftpport('65536')
        ftpSmaba.click_save()
        time.sleep(1)
        tipsport = str(ftpSmaba.getText_byXpath(ftpSmaba.tipsport))
        if portwarnA not in tipsport:
            CapPic(self.driver)
            logger.info(u'FTP端口范围提示有误')
            raise Exception('FTP端口范围提示有误')

        # 将端口改回21
        ftpSmaba.input_ftpport('21')
        ftpSmaba.click_save()
        time.sleep(2)

        self.driver.quit()
        logger.info('test_002_ftpPort passed')