selenium 一个简单的流程

时间:2023-03-09 07:40:08
selenium  一个简单的流程

在整个自动化测试过程中需要分为及部分:

     1、初始化
     2、结束
     3、异常处理
     4、截图
     5、对弹窗的处理
     6、测试用例
整个过程中需要包括测试报告,自动生成
     生成测试报告后需要加上备注,方便注释哪些用例通过
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
import HTMLTestRunner
import  fun

class Baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.baidu.com/"
        self.verificationErrors = []
        self.accept_next_alert = True

    def test_baidu(self):
        driver = self.driver
        driver.get(self.base_url + "/")
        driver.find_element_by_id("kw").send_keys("selenium")
        driver.find_element_by_id("su").click()

    def test_HB(self):
        driver = self.driver
        driver.get('http://www.haibian.com')
        for k,v in fun.zidian().items():
            try:
                driver.find_element_by_id('loginname').send_keys(k)
                driver.find_element_by_id('password').send_keys(v)
                driver.find_element_by_id('J-submit').click()
            except:#这里的图片可以使用成变量
                driver.get_screenshot_as_file(r"E:\ytxu\python\test_jpg\sss.jpg")

    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True

    def is_alert_present(self):
        try: self.driver.switch_to_alert()
        except NoAlertPresentException, e: return False
        return True

    def close_alert_and_get_its_text(self):
        try:
            alert = self.driver.switch_to_alert()
            alert_text = alert.text
            if self.accept_next_alert:
                alert.accept()
            else:
                alert.dismiss()
            return alert_text
        finally: self.accept_next_alert = True

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    testunit = unittest.TestSuite()
    testunit.addTest(Baidu("test_baidu"))
    testunit.addTest(Baidu("test_HB"))
    file_name =r'E:\ytxu\python\test_result\result.html'
    fp = file(file_name,'wb')
    runner = HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title='Report_title',
        description='Report_description')
    runner.run(testunit)