Exemplo n.º 1
0
	def __init__(self):
		self.driver = webdriver.Chrome()
		self.driver.get('http://www.18crm.com')
		self.login_b = LoginBussiness(self.driver,'../config/LocalElement.ini')
		self.login_h = LoginHandle(self.driver,'../config/LocalElement.ini')
		self.rd = ReadIni('../config/TestData.ini')
		self.base = CommonUtil()
Exemplo n.º 2
0
 def get_element(self, key, *args):
     #key 未local_element.ini中等号前面的部分,如:user_name=id>"user_login" key为:user_name
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     data = data.split(">", 1)
     by = data[0]
     value = data[1]
     print('by: ', by, 'value: ', value)
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == "linktext":
             return self.driver.find_element_by_link_text(value)
         elif by == "partiallinxtext":
             return self.driver.find_element_by_partial_link_text(value)
         elif by == 'tagname':
             return self.driver.find_element_by_tag_name(value)
         elif by == "classname":
             return self.driver.find_element_by_class_name(value)
         elif by == "css":
             return self.driver.find_element_by_css_selector(value)
         elif by == "xpath":
             return self.driver.find_element_by_xpath(value)
         elif by == 'jsscript':
             return self.driver.execute_script(value, *args)
         elif by == "jsasyncscript":
             return self.driver.execute_async_script(value, *args)
     except:
         return None
Exemplo n.º 3
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     a = data.split('>')
     if len(a) == 2:
         by = data.split('>')[0]
         value = data.split('>')[1]
         try:
             if by == 'id':
                 return self.cc.find_element_by_id(value)
             elif by == 'class_name':
                 return self.cc.find_element_by_class_name(value)
             else:
                 return self.cc.find_element_by_xpath(value)
         except:
             return None
     else:
         by = data.split('>')[0]
         value = data.split('>')[1]
         send = data.split('>')[2]
     try:
         if by == 'id':
             return self.cc.find_element_by_id(value).send_keys(send)
         elif by == 'class_name':
             return self.cc.find_element_by_class_name(value).send_keys(
                 send)
         else:
             return self.cc.find_element_by_xpath(value).send_keys(send)
     except:
         return None
Exemplo n.º 4
0
    def get_lampstandard_element(self, key):
        read_ini = ReadIni()
        data = read_ini.get_LocalElement_value("lampstandard", key)
        by = data.split('>')[0]
        value = data.split('>')[1]
        # print(by)
        # print(value)
        # try容错处理
        try:
            if by == 'id':
                return self.driver.find_element_by_id(value)
            elif by == 'name':
                return self.driver.find_element_by_name(value)
            elif by == 'className':
                return self.driver.find_element_by_class_name(value)
            else:
                return self.driver.find_element_by_xpath(value)
        except:
            print("未找到该元素")
            return None


# if __name__ == '__main__':
#     find = FindElement()
#     find.get_setTemp_element("veal")
    def get_element(self, key):
        read_ini = ReadIni()
        data = read_ini.get_value(key)
        data_list = data.split(">")
        # print(data_list)
        by = data_list[0]
        # print(by)
        value = data_list[1]
        # print(value)
        No = 0
        if by == "classnames":
            No = int(data_list[2])

        try:
            if by == "id":
                return self.driver.find_element_by_id(value)
            elif by == "name":
                return self.driver.find_element_by_name(value)
            elif by == "classname":
                return self.driver.find_element_by_class_name(value)
            elif by == "classnames":
                return self.driver.find_elements_by_class_name(value)[No]
            elif by == "xpath":
                return self.driver.find_element_by_xpath(value)
        except:
            self.driver.save_screenhot()
            return None
Exemplo n.º 6
0
 def __init__(self):
     unittest.TestCase.__init__(self)
     xiao_iron = 'E:/xt/xironbardepend/xironbackend/'
     self.run_method = RunMethod()
     self.data = GetData(xiao_iron + 'dataconfig/interfacebar1.xlsx', 2)
     self.send_mai = SendEmail()
     self.read_int = ReadIni()
Exemplo n.º 7
0
    def get_element(self, key):
        read_ini = ReadIni()
        # 返回register_nickname形式数据
        data = read_ini.get_value(key)
        # 以>进行拆分,第一个是查找形式,第二个是查找参数
        by = data.split('>')[0]
        val = data.split('>')[1]
        try:
            if by == 'id':
                element = self.driver.find_element_by_id(val)
                return element
            elif by == 'link_text':
                element = self.driver.find_element_by_link_text(val)
                return element
            elif by == 'class_name':
                element = self.driver.find_elements_by_class_name(val)
                return element
            elif by == 'xpath':
                element = self.driver.find_element_by_xpath(val)
                return element
            else:
                element = self.driver.find_element_by_css_selector(val)
                return element

        except:
            return None
Exemplo n.º 8
0
    def get_elements(self, key, *args):
        read_ini = ReadIni()
        data = read_ini.get_value(key)
        data = data.split(">", 1)
        by = data[0]
        value = data[1]
        by = data[0]
        value = data[1]
        if by == 'id':
            return self.driver.find_elements_by_id(value)
        elif by == 'name':
            return self.driver.find_elements_by_name(value)
        elif by == "linktext":
            return self.driver.find_elements_by_link_text(value)
        elif by == "partiallinxtext":
            return self.driver.find_elements_by_partial_link_text(value)
        elif by == 'tagname':
            return self.driver.find_elements_by_tag_name(value)
        elif by == "classname":
            return self.driver.find_elements_by_class_name(value)
        elif by == "css":
            return self.driver.find_elements_by_css_selector(value)
        elif by == "xpath":
            return self.driver.find_elements_by_xpath(value)
        elif by == 'jsscript':
            return self.driver.execute_script(value, *args)
        elif by == "jsasyncscript":
            return self.driver.execute_async_script(value, *args)


# if __name__ == '__main__':
#     fl = Find_Element()
#     fl.get_element("user_name")
Exemplo n.º 9
0
 def gather():
     config = ReadIni()
     driver = webdriver.Chrome()
     filename = os.path.dirname(
         os.path.dirname(__file__)) + "/image/image.png"
     logurl = config.get_url("sso_url")
     driver.implicitly_wait(10)
     driver.delete_all_cookies()
     driver.get(logurl)
     print(driver.get_cookies())
     driver.find_element_by_name('username').send_keys(
         config.get_LOGIN("username"))
     driver.find_element_by_name('password').send_keys(
         config.get_LOGIN("password"))
     driver.save_screenshot(filename)  # 截屏
     element = driver.find_element_by_class_name('validateCode')  # 获取验证码位置
     Verification = image.image(element, filename)  # 调用识别验证码
     driver.find_element_by_name('validateCode').send_keys(Verification)
     driver.find_element_by_xpath('//input[@value="登  录"]').click()
     time.sleep(5)
     ### 获取cookie
     cookie = driver.get_cookies()
     print(cookie)
     jsonCookies = json.dumps(cookie)
     with open('cookie.txt', 'w') as f:
         f.write(jsonCookies)
     time.sleep(3)
     driver.close()
Exemplo n.º 10
0
 def __init__(self):
     self.dt = Data()
     readIni = ReadIni()
     self.base_url = readIni.get_value('base_url', 'api')
     self.schoolweb_url = readIni.get_value('schoolweb_url', 'api')
     self.req = Request()
     self.row_total = self.dt.row_total()
Exemplo n.º 11
0
 def __init__(self, driver):
     super().__init__(driver)
     self.driver = driver
     self.efg = ReadIni(file_name='admin_server_page.ini')
     self.cfg = ReadIni(is_page_view=False)
     self.driver.set_page_load_timeout(30)
     self.driver.set_script_timeout(30)
     self.logger = get_logger()
Exemplo n.º 12
0
 def __init__(self):
     unittest.TestCase.__init__(self)
     xiao_iron = 'E:/xt/xtcontract/xironbackend/dataconfig/'
     self.run_method = RunMethod()
     self.data = GetData(xiao_iron + 'interfacebar1.xlsx', 8)
     self.send_mai = SendEmail()
     self.read_int = ReadIni()
     self.statistic = Dict()
     self.excel_prop = Dict()
Exemplo n.º 13
0
 def __init__(self, driver):
     super().__init__(driver)
     self.driver = driver
     self.efg = ReadIni(file_name=file_name)
     self.cfg = ReadIni(is_page_view=False)
     self.driver.set_page_load_timeout(30)
     self.driver.set_script_timeout(30)
     self.logger = get_logger()
     self.url = self.cfg.read_config('admin', 'url')
Exemplo n.º 14
0
 def get_coordinate(self, key, section):
     read_ini = ReadIni()
     local = read_ini.get_value(key, section)
     if local is None:
         return None
     local_by = local.split(">")[1]
     size = self.driver.get_window_size()
     x = int(float(local_by.split(",")[0]) * size['width'])
     y = int(float(local_by.split(",")[1]) * size['height'])
     return x, y
Exemplo n.º 15
0
 def get_element(self, node_element, element):
     try:
         read_ini = ReadIni()
         data = read_ini.get_value(node_element, element)
         by = data.split('>')[0]
         value = data.split('>')[1]
         result = self.driver.find_element(by, value)
     except:
         result = None
     return result
 def __init__(self, driver: WebDriver, file=None, node=None):
     self.driver = driver
     self.log = UserLog()
     self.logger = self.log.get_log()
     if file == None:
         self.filename = parent_dir + '/config/Element.ini'
     else:
         self.filename = parent_dir + file
     self.rean_ini = ReadIni(filename=self.filename, node=node)
     self.logger.info(self.filename)
     self.logger.info(node)
Exemplo n.º 17
0
 def __init__(self,driver):
     self.manual_handle = ManualHandle(driver)
     self.home_handle = HomeHandle(driver)
     self.detail_handle = DetailHandle(driver)
     self.wallet_handle = WalletPagePage
     # 获取当前目录
     current_dir = os.path.dirname(__file__)
     # 获取当前目录的父级目录
     parent_dir = os.path.dirname(current_dir)
     path = parent_dir + '\config\dataConfig.ini'
     self.readIni = ReadIni(path)
Exemplo n.º 18
0
 def change_base_url(self, host=None):
     #如果没有传host,则从第一个用例里用正则表达式去匹配host,否则就直接用传入的host
     if not host:
         r = re.search(settings.URL_RE, self.url)
         host = r[0]
         self.logger.info(
             "没有传host,从第一个用例里用正则表达式去匹配host,匹配结果是{}".format(host))
     #将host记录到ini文件中,方便后续接口使用
     read_i = ReadIni()
     read_i.write_data("base_url", host, "url")
     self.logger.info("将host记录到ini文件中,方便后续接口使用")
Exemplo n.º 19
0
def pre_send_mail(report_name):
    """发送邮件预处理"""
    cfg = ReadIni(isPageView=False, file_name="Email_config.ini")
    message = MIMEMultipart("related")
    current_time = time.strftime("%Y-%m-%d %H:%M:%S",
                                 time.localtime(time.time()))
    to_addr = cfg.Read_config("Emailer", "To_addr")
    cc_addr = cfg.Read_config("Emailer", "Cc_addr")
    user_list = to_addr.split(',') + cc_addr.split(',')
    sub = "【请阅】固定资产UI自动化测试报告" + current_time
    user = send_user
    message['Subject'] = sub
    message['From'] = user
    message['To'] = to_addr
    message['Cc'] = cc_addr
    # 添加内容(或图片)到邮件正文中
    mail_content = """
            <p>您好,以下为固资平台UI自动化测试报告,详情请下载附件报告,推荐使用Chrome浏览器查看!</p>
            <p>ps:请将两个文件放在同一个目录下,再查看html报告,否则无法查看近十次测试统计图。</p>
            """
    # # 添加邮件正文信息
    mail_body = MIMEText(mail_content, _subtype='html', _charset='utf-8')
    message.attach(mail_body)
    # 添加附件1
    ctype, encoding = mimetypes.guess_type(report_name[0])
    if ctype is None or encoding is not None:
        ctype = "application/octet-stream"
    maintype, subtype = ctype.split("/", 1)
    att1 = MIMEImage((lambda f:
                      (f.read(), f.close()))(open(report_name[0], 'rb'))[0],
                     _subtype=subtype)
    att1.add_header("Content-Disposition",
                    "attachment",
                    filename=os.path.basename(report_name[0]))
    message.attach(att1)
    # 添加附件2
    ctype, encoding = mimetypes.guess_type(report_name[1])
    if ctype is None or encoding is not None:
        ctype = "application/octet-stream"
    maintype, subtype = ctype.split("/", 1)
    att2 = MIMEImage((lambda f:
                      (f.read(), f.close()))(open(report_name[1], 'rb'))[0],
                     _subtype=subtype)
    att2.add_header("Content-Disposition",
                    "attachment",
                    filename=os.path.basename(report_name[1]))
    message.attach(att2)
    # 发送邮件
    server = smtplib.SMTP()
    server.connect(email_host)
    server.login(send_user, password)
    server.sendmail(user, user_list, message.as_string())
    server.close()
Exemplo n.º 20
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split(">")[0]
     value = data.split(">")[1]
     try:
         if by == "id":
             return self.driver.find_element_by_id(value)
         if by == "xpath":
             return self.driver.find_element_by_xpath(value)
     except:
         return None
Exemplo n.º 21
0
 def get_element(self, section, key):
     read_ini = ReadIni(
         'C:/Users/xx/Desktop/SeleniumPython2/config/LocalElement.ini')
     #id>com.msjt.sigma:id/id_name
     local = read_ini.get_value(section, key)
     by = local.split('>')[0]
     local_by = local.split('>')[1]
     if by == 'ids':
         return self.driver.find_elements_by_id(local_by)
     elif by == 'id':
         return self.driver.find_element_by_id(local_by)
     elif by == 'className':
         return self.driver.find_element_by_class_name(local_by)
     else:
         return self.driver.find_element_by_xpath(local_by)
Exemplo n.º 22
0
	def login(self,broswer='Chrome'):
		'''
		公用登录方法
		'''
		if broswer == 'Chrome':
			driver = webdriver.Chrome()
		driver.get('http://www.18crm.com')
		driver.maximize_window()
		fd = FindElement(driver,'../config/LocalElement.ini')
		rd = ReadIni('../config/TestData.ini')
		fd.get_element('login','username').send_keys(rd.get_value('public_login','username'))
		fd.get_element('login','password').send_keys(rd.get_value('public_login','password'))
		fd.get_element('login','loginButton').click()
		self.acceptAlert(driver)
		return driver
Exemplo n.º 23
0
    def get_element(self,key):
        read_ini = ReadIni()
        local = read_ini.get_value(key)
        by = local.split('>')[0]
        local_by = local.split('>')[1]
        if local != None:
            if by == 'id':
                return self.driver.find_element_by_id(local_by)
            elif by == 'className':
                return self.driver.find_elements_by_class_name(local_by)
            else:
                return self.driver.find_element_by_android_uiautomator(local_by)

        else:
            return None
Exemplo n.º 24
0
def select_brower():
    read_ini = ReadIni(node='webdriver')
    web_driver = read_ini.get_key('webdriver')
    for wd in web_driver:
        if wd == 'firefox':
            return webdriver.Firefox()
        elif wd == 'ie':
            return webdriver.Ie()
        elif wd == '360':
            wd_option = read_ini.get_value('360')
            chrome_options = webdriver.ChromeOptions()
            chrome_options.binary_location = wd_option
            chrome_options.add_argument(r'--lang=zh-CN')
            return webdriver.Chrome(chrome_options=chrome_options)
        elif wd == 'chrome':
            return webdriver.Chrome()
Exemplo n.º 25
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_LocalElement_value("RegisterElement", key)
     by = data.split('>')[0]
     value = data.split('>')[1]
     #try容错处理
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'className':
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         print("未找到该元素")
         return None
Exemplo n.º 26
0
 def OpenSystem(self):
     """AW: 登录系统"""
     try:
         efg = ReadIni(file_name='loginView.ini')
         url = self.cfg.Read_config('ALL_URL', 'test_url')
         user = self.cfg.Read_config('test_account', 'user_name')
         pd = self.cfg.Read_config('test_account', 'pass_word')
         self.driver.get(url)
         self.driver.maximize_window()
         account = self.get_element('loginView', 'user', efg)
         pwd = self.get_element('loginView', 'pwd', efg)
         account.clear()
         account.send_keys(user)
         logger.info('输入账号信息')
         pwd.clear()
         pwd.send_keys(pd)
         logger.info('输入密码信息')
         self.get_element('loginView', 'button', efg).click()
         time.sleep(5)
         try:
             self.closeNotice()
             time.sleep(3)
             logger.info('关闭公告弹窗')
             logger.info('成功登陆系统')
         except:
             logger.info('无弹窗,成功登陆系统')
     except Exception as e:
         logger.info('系统登陆失败' + e)
Exemplo n.º 27
0
class GetElement:
    def __init__(self, driver, filename=None):
        self.driver = driver
        self.filename = filename
        self.r = ReadIni(self.filename)

    def get_element_key(self, key, section=None):
        element_key = self.r.get_value(key, section)
        if element_key:
            element_key_list = element_key.split(">")
        else:
            element_key_list = None
            print("配置文件中未取到该元素")
        return element_key_list

    def get_element(self, key, section=None):
        key_list = self.get_element_key(key, section)
        wait = WebDriverWait(self.driver, 15)
        print("####################")
        print(key_list[1])
        try:
            if key_list[0] == 'id':
                key_tuple = (By.ID, key_list[1])
            elif key_list[0] == 'name':
                key_tuple = (By.NAME, key_list[1])
            else:
                key_tuple = (By.XPATH, key_list[1])
            element = wait.until(EC.visibility_of_element_located(key_tuple))
        except:
            print("元素未找到")
            element = None
        return element
Exemplo n.º 28
0
 def setUpClass(cls):
     get_element = ReadIni()
     cls.pwd = os.path.join(os.path.dirname(os.getcwd()))
     cls.file_name = cls.pwd + "\\image\\test001.png"
     # cls.file_name = get_element.get_value("code_image_url")
     cls.log = UserLog()
     cls.logger = cls.log.get_log()
Exemplo n.º 29
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split('>')[0]
     value = data.split('>')[1]
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'classname':
             return self.driver.find_element_by_classname(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         return None
Exemplo n.º 30
0
class FindKeyCode(object):

    #根据key找到,按键对应的按键码,并将按键码返回
    def get_keyCode(self, key):
        self.read_ini = ReadIni()
        data = self.read_ini.get_keypad_value("keyPad", key)
        return data