Selenium测试案例一步步学之(2)Selenium自动测试脚本模块化(上)

 

    上次我们已经用python语言实现了QQ邮箱自动登录查找非阅读邮件,这个过程实际上包含了下面图表的步骤:

    

    

就是从打开浏览器,输入地址,查找元素,传送键值,查找结果这几个功能说开去,就可以把上述代码形成selenium测试的模块化。

     那么QQ登录查找当前页最新邮件模块化后代码可以概括为下面的内容,框在里面的就是对应的模块功能。

from  selenium  import  webdriver

import  time

 

'''

    打开浏览器

'''

def   open_browser():

   browser = webdriver.Firefox()

   return browser

 

 

   

 

'''

 

打开测试url

'''

 

 

 

def  open_url(browser , url):

   browser.get(url)

   browser.maximize_window()

 

 

 

 

 

 

'''

    查找元素

'''

 

 

def   find_element(browser,link_text,usr_id,pwd_id,btn_id):

   if  link_text:

       browser.find_element_by_link_text(link_text).click()

   usrElement =  browser.find_element_by_id(usr_id)

   pwdElement = browser.find_element_by_id(pwd_id)

   btnElement = browser.find_element_by_id(btn_id)

   return   usrElement,pwdElement,btnElement

 

 

 

 

 

 

'''

    对查找的元素赋值

'''

 

 

def  set_vals(elem , usr_txt , pwd_txt):

 

   listkey = [usr_txt , pwd_txt]

   i=0

   for key in listkey:

        elem[i].clear()

        elem[i].send_keys(key)

        i+ = 1

   elem[i].click()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'''

获取对应测试结果

'''

 

 

def    get_result(browser,class_name):

        elems    =    browser.find_elements_by_class_name(class_name)

        for el in elems:

                print (el.text)

 

 

 

 

'''

 

 

 

关闭登陆效果,并关闭浏览器

'''

def    close(browser):

   browser.find_element_by_link_text("退出").click()

   browser.close()

   '''

    进入对应框架内

    '''

def    open_frame(browser,framename=""):

   if framename    !=    "":

        browser.switch_to.frame(framename)

'''

    返回根

'''

       

def    return_frame(browser):

   browser.switch_to_default_content()

 

'''

    进入页面的操作

'''

def    get_response(browser,action_txt):

   browser.find_element_by_partial_link_text(action_txt).click()

 

 

if    __name__    ==    "__main__":

 

 

  '''

              此段代码被修改

        driver=webdriver.Firefox()

    '''

driver=open_browser()

 

  

 

 

  '''

                    此段代码被修改

       driver.get("http://mail.qq.com")

    '''

 

 open_url(driver,"http://mail.qq.com")

 

 

 

 

 ''

               此段代码被修改

       driver.switch_to.frame("login_frame")

    '''

   open_frame(driver,"login_frame"

 

  

 

 

  '''

                            此段代码被修改

       label=driver.find_element_by_link_text(u"帐号密码登录").click()

        usr=driver.find_element_by_id("u")

        pwd=driver.find_element_by_id("p")

        btn=driver.find_element_by_id("login_button")

    '''

 

 

   elem_tmp=find_element(driver,u"帐号密码登录","u","p","login_button")

 

 

 

 

  '''

                            此段代码被修改

        usr..send_keys("XXXXXXXX")

        pwd..send_keys("XXXXXXXXXXXXXX")

        btn.click()

    '''

 

 

  set_vals(elem_tmp,"XXXXXXXX","XXXXXXXXXXXXX")

 

 

 

  

''

                        此段代码换成公用的切换回主界面的代码

           driver.switch_to_default_content()

    '''

 

 

    return_frame(driver)

 

  

 

 

   '''

                    此段代码换成功能性代码

       driver.find_element_by_partial_link_text(u"收件箱").click()

    '''

 

 

   get_response(driver,u"收件箱")

 

 

 

 

 

  

 

'''

           此段回到相关frame

   '''

 

 

   open_frame(driver,"mainFrame")

 

 

 

 

 '''

                此段获取功能结果   

    '''

 

 

   get_result(driver,"F")

 

 

 

 

  '''

        此段代码退出

    '''

 

 

 return_frame(driver)   

close(driver)

 

 

 

 

 

 

上述代码中,部分功能模块的参数太复杂。我们下期继续把测试模块化进行整改。把数据归整到一起,敬请留意。

代码的github地址:https://github.com/wawacode/selenium_login_qq_mail

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值