Selenium 模块化(二)

本文章主要讲如果进行多模块之间的自动化操作。

1.将登录模块封装成一个公共类:

#!/usr/bin/python
# -*- coding:utf-8

# 用户登录
class login():
    # 登录
    def test_login(driver):
        try:
            # 访问登录界面,进行登录操作
            url = "http:****.html"
            driver.get(url)
            # 设置隐式等待时间
            driver.implicitly_wait(30)
            # 获取账号元素,输入内容
            driver.find_element_by_name("user_name").clear()
            driver.find_element_by_name("user_name").send_keys(u"****")
            # 获取密码元素,输入内容
            driver.find_element_by_id("password").send_keys("123456")
            # 点击登录按钮
            driver.find_element_by_id("login_submit").click()
            url = "****"# 登陆成功跳转
            if(driver.current_url != url):
                driver.get_screenshot_as_file(u"E:\\截图\\登录跳转界面错误.jpg")  # 失败截图
            else:
                print(u"成功")
        except:
            driver.get_screenshot_as_file(u"E:\\截图\\Login.jpg") # 失败截图

2.在其他类当中调用登录方法

import unittest
from Selenium.unilt.Login import login
from selenium import webdriver

# 用户充值模块
class recharge(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)

    # 充值
    def test_recharge(self):
        driver = self.driver
        login.test_login(driver) # 首页执行登录操作
        # 进行充值操作
        try:
            driver.find_element_by_link_text(u"立即充值").click()
            url = "****" # 充值界面跳转 url
            if driver.current_url != url:
                driver.get_screenshot_as_file(u"E:\\截图\\充值跳转失败.jpg")
            else:
                # 操作页面元素
                driver.find_element_by_id("txt_money").clear()
                driver.find_element_by_id("txt_money").send_keys(u"1000")
                driver.find_element_by_class_name("bank-card-number").click()
                driver.find_element_by_class_name("btn-green").click()
                #  操作弹出框元素
                driver.find_element_by_id("send_phone").send_keys("****")
                driver.find_element_by_id("send_btn").click()
                driver.find_element_by_id("verify_send").send_keys("1234")
                driver.find_element_by_id("confirm_submit").click()
                url = "" #  充值成功跳转界面
                if driver.current_url != url:
                    driver.get_screenshot_as_file(u"E:\\截图\\充值成功界面跳转错误.jpg")  # 失败截图
                else:
                    print("充值成功")
        except:
            driver.get_screenshot_as_file(u"E:\\截图\\chongzhi.jpg")  # 失败截图

    def tearDown(self):
        self.driver.close()
        self.driver.quit()

    该类中不存在任何 url 地址,因为在登录当中已经定义过。登录成功后,界面会自动跳转一个新的 url 地址。所以正常脚本当中是不需要去定义很多 url 地址的。url 地址通常用来判断跳转的界面是否正确。

    上述例子为,用户登录成功后,前往充值。

    主要为在充值脚本当中调用 login 方法,传递 driver 参数。其余和普通的脚本基本保持一致。如果还如要嵌套更多的方法,步骤统一如上所述。

阅读更多
文章标签: Selenium
个人分类: Selenium学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Selenium 模块化(二)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭