zoukankan      html  css  js  c++  java
  • selenium09-自动化练习案例

    为了练习测试用例模块化,与数据分离,这次以qq邮箱为例,进行练习:

    先将6个qq账号和密码放在一个单独的文件A中,然后在另一个文件B中编写自动化的代码,调用文件A中的账号和密码来实现自动登录并验证,验证之后,退出浏览器,三秒后再开始下一个账号的登录。

    以下是源码,具体的qq账号和密码我隐去了

    #user_list.py  #存放账号和密码的文件 user_list.py

    def get_user_list():

      user_list = {

      'account01': {'username':'********', 'password':'********'},

      'account02': {'username':'********', 'password':'********'},

      'account03': {'username':'********', 'password':'********'},

      'account04': {'username':'********', 'password':'********'},

      'account05': {'username':'********', 'password':'********'},

      'account06': {'username':'********', 'password':'********'}

      }

      return user_list

    #qq_mail_login.py  #主要代码模块的文件名 qq_mail_login.py

    from selenium import webdriver

    import time

    from selenium.webdriver.support.ui import WebDriverWait

    import user_list

    def get_web():

      driver = webdriver.Firefox()

      driver.get('https://mail.qq.com/')

      return driver

    def get_login(driver):

      WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_xpath('/html/body/div/div[1]/a'))

      driver.switch_to.frame('login_frame')

      driver.find_element_by_id('switcher_plogin').click()

    def input_login(driver, account, password):

      ele_account = driver.find_element_by_id('u')

      ele_account.clear()

      ele_account.send_keys(account)

      ele_account.send_keys('@qq.com')

      ele_password = driver.find_element_by_id('p')

      ele_password.clear()

      ele_password.send_keys(password)

      driver.find_element_by_xpath('//*[@id="login_button"]').click()

      time.sleep(10)

    def check_login(driver, account):

      try:

        driver.switch_to.default_content()

        driver.switch_to.frame('mainFrame')

        ele = driver.find_element_by_xpath('/html/body/div[2]/div/ul/li[1]/div[2]/a')

        print('登录账号',account,'成功!')

      except:

        print(account,'登录失败!')

    if __name__ == "__main__":

      users = user_list.get_user_list()

      for key, value in users.items():

        account = value['username']

        password = value['password']

        print('账号', key, '正在登录中……')

        driver = get_web()

        get_login(driver)

        input_login(driver, account, password)

        check_login(driver, account)

        driver.quit()

        time.sleep(3)

     凌晨一点,困得眼睛睁不开,最近上班是996,也许以上代码中有错,但是我在geany中运行是正常的,不知道刚刚犯困有没有改错

  • 相关阅读:
    敏捷不是XP(口水文)
    利用异或的特性解决,找出重复数的问题,应该是目前最优算法。
    开源和免费那些事儿(二)
    开源和免费那些事儿
    LINQ本质 外篇 JOIN补遗
    在北京求.NET开发职位,人已经到达北京
    软件是邪恶的
    最近遇到的两个面试题兼卖身广告
    谈谈信仰和银弹。
    继续高阶函数好玩有用的扩展(网吧行文)
  • 原文地址:https://www.cnblogs.com/maigeyouziba/p/11235376.html
Copyright © 2011-2022 走看看