zoukankan      html  css  js  c++  java
  • python与selenium自动化基础-测试用例数据数据分离

    分离前:

    from selenium import webdriver
    import time
    def test():
        d = webdriver.Firefox()
        d.get('https://www.imooc.com/')
        d.find_element_by_link_text("登录").click()
        time.sleep(5)
        #ele1 = d.find_element_by_xpath('/html/body/div[9]/div[2]/div/form/div[1]/input')
        ele1 = d.find_element_by_name("email")
        ele1.clear()
        ele1.send_keys("xxxxx")
        ele2 = d.find_element_by_name("password")
        ele2.clear()
        ele2.send_keys("yyyyy")
        d.find_element_by_css_selector('input[type="button"]').click()
    test()

    分离后:

    from selenium import webdriver
    import time
    def openBrower():
        webdriver_handle = webdriver.Firefox()
        return webdriver_handle
    def openUrl(handle,url):
        handle.get(url)
    def findElement(d,arg):
        ele_login = d.find_element_by_link_text(arg['login_text'])
        ele_login.click()
        time.sleep(5)
        userEle = d.find_element_by_name(arg['userid'])
        pwdEle = d.find_element_by_name(arg['pwdid'])
        loginEle = d.find_element_by_css_selector('input[type="button"]')
        return userEle,pwdEle,loginEle
    def sendVals(eletuple,arg):
        listkey = ['uname','pwd']
        i = 0
        for key in listkey:
            eletuple[i].clear()
            eletuple[i].send_keys(arg[key])
            i+=1
        eletuple[2].click()
    def checkResult(d,text):
        try:
            d.find_element_by_link_text(text)
            print("Account and Pwd Error!")
        except:
            print("Account and Pwd Right!")
    def login_test(ele_dict,user_list):
        d = openBrower()
        openUrl(d,ele_dict['url'])
        ele_tuple = findElement(d,ele_dict)
        for arg in user_list:
            sendVals(ele_tuple, arg)
            checkResult(d,ele_dict['errorid'])
    # 当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行
    if __name__ == '__main__':
        url = 'https://www.imooc.com/'
        login_text = "登录"
        account = 'xxxxx'
        pwd = 'yyyyy'
        id_account_1 = 'email'
        id_password_1 = 'password'
        ele_dict = {'url':url,'login_text':login_text,'userid':id_account_1,
                    'pwdid':id_password_1,'errorid':'该账号格式不正确'}
        user_list = [{'uname':account,'pwd':pwd}]
        login_test(ele_dict,user_list)

    从文件导入数据:

    from selenium import webdriver
    import time
    from userdata import get_webinfo,get_userinfo
    def openBrower():
        webdriver_handle = webdriver.Firefox()
        return webdriver_handle
    def openUrl(handle,url):
        handle.get(url)
    def findElement(d,arg):
        ele_login = d.find_element_by_link_text(arg['login_text'])
        ele_login.click()
        time.sleep(5)
        userEle = d.find_element_by_name(arg['userid'])
        pwdEle = d.find_element_by_name(arg['pwdid'])
        loginEle = d.find_element_by_css_selector('input[type="button"]')
        return userEle,pwdEle,loginEle
    def sendVals(eletuple,arg):
        listkey = ['uname','pwd']
        i = 0
        for key in listkey:
            eletuple[i].clear()
            eletuple[i].send_keys(arg[key])
            i+=1
        eletuple[2].click()
    def checkResult(d,text):
        try:
            d.find_element_by_link_text(text)
            print("Account and Pwd Error!")
        except:
            print("Account and Pwd Right!")
    def login_test(ele_dict,user_list):
        d = openBrower()
        openUrl(d,ele_dict['url'])
        ele_tuple = findElement(d,ele_dict)
        for arg in user_list:
            sendVals(ele_tuple, arg)
            checkResult(d,ele_dict['errorid'])
    if __name__ == '__main__':
        ele_dict = get_webinfo(r'G:yayapycharmwebinfo')
        user_list = get_userinfo(r'G:yayapycharmuserinfo')
        login_test(ele_dict,user_list)

    userinfo

    uname=xxxxx pwd=yyyyy

    webinfo

    url = https://www.imooc.com/
    login_text = 登录
    userid = email
    pwdid = password
    errorid = 该账号格式不正确

    userdata.py

    def get_webinfo(path):
        web_info = {}
        config = open(path,encoding='UTF-8')
        for line in config:
            result = [ele.strip() for ele in line.split('=')]
            web_info.update(dict([result]))
        return web_info
    
    def get_userinfo(path):
        user_info = []
        config = open(path,encoding='UTF-8')
        for line in config:
            user_dict = {}
            result = [ele.strip() for ele in line.split(' ')]
            for r in result:
                account = [ele.strip() for ele in r.split('=')]
                user_dict.update(dict([account]))
            user_info.append(user_dict)
        return user_info
    
    if __name__ == '__main__':
        webinfo = get_webinfo(r'G:yayapycharmwebinfo')
        for key in webinfo:
            print(key,webinfo[key])
        userinfo = get_userinfo(r'G:yayapycharmuserinfo')
        for l in userinfo:
            print(l)

  • 相关阅读:
    bq25896 IINDPM 及 無 IINDPM 時的 regsiter
    不同狀況下的 bq25896 register
    bq25896 charging status CHRG_STAT register 0xB
    快充 IC BQ25896 如何判斷 手機插著 adapter 充電器時,adapter Iout 大於限制,adapter Vout 小於 限制,導致 battery 不但沒充電且還需放電。
    在 kernel 下打出 有帶參數的log。 怪異現象與解決方式。
    mtk flash tool,Win7 On VirtualBox
    java 去最后一位字符 str.substring(0,str.length()-1)
    Windows下Oracle的下载与安装及配置
    关于Java中SQL语句的拼接规则
    <id name="ID"> <generator class="assigned" /> </id>
  • 原文地址:https://www.cnblogs.com/peiya/p/12482706.html
Copyright © 2011-2022 走看看