首页 > 编程语言 > 详细

【原创】python+selenium+ddt+unittest实现web功能自动化测试

时间:2020-10-20 21:27:23      阅读:58      评论:0      收藏:0      [点我收藏+]

前期准备:

pip install selenium

pip install ddt

以下代码实现内容:

对页面提交表单时带有特殊字符情况的验证

# coding=utf-8
import time
import unittest
import ddt
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

@ddt.ddt
class Test_psnickname(unittest.TestCase):
    def setUp(self):
        """启动浏览器"""
        global browser
        browser = webdriver.Chrome()
        browser.get(URL)
        browser.maximize_window()
        browser.find_element_by_xpath(//input[@name="username"]).send_keys(username)
        browser.find_element_by_xpath(//input[@name="password"]).send_keys(password)
        time.sleep(1)
        browser.find_element_by_xpath(//button[@class="el-button el-button--primary"]).click()
        browser.implicitly_wait(10)
        time.sleep(2)

    @ddt.data([abcdefg, 操作成功], [ABCDEFG, 操作成功], [123456, 操作成功],
              [`, 操作成功], [~, 操作成功], [!, 操作成功],
              [@, 操作成功], [#, 操作成功], [$, 操作成功],
              [%, 操作成功], [^, 操作成功], [&, 操作成功],
              [*, 操作成功], [(, 操作成功], [), 操作成功],
              [-, 操作成功], [_, 操作成功], [=, 操作成功],
              [+, 操作成功], [[, 操作成功], [], 操作成功],
              [{, 操作成功], [}, 操作成功], [\\, 操作成功],
              [|, 操作成功], [;, 操作成功], [:, 操作成功],
              ["", 操作成功], [,, 操作成功],
              [<, 操作成功], [., 操作成功], [>, 操作成功],
              [/, 操作成功], [?, 操作成功], [·, 操作成功],
              [, 操作成功], [, 操作成功], [……, 操作成功],
              [, 操作成功], [, 操作成功], [——, 操作成功],
              [, 操作成功], [{, 操作成功], [, 操作成功],
              [}, 操作成功], [, 操作成功], [, 操作成功],
              [, 操作成功], [, 操作成功], [, 操作成功],
              [, 操作成功], [, 操作成功], [, 操作成功],
              [, 操作成功], [, 操作成功], [, 操作成功],
              [, 操作成功], [Aa测试123?@*&%, 操作成功], [测试昵称, 操作成功])
    @ddt.unpack
    def test_1(self, value, expect_value):
        """验证个人设置内昵称字符的限制"""
        browser.find_element_by_xpath(//div[@class="avatar-wrapper el-dropdown-selfdefine"]).click()
        time.sleep(1)
        locator1 = (class name, el-dropdown-menu__item)
        WebDriverWait(browser, 10).until(EC.presence_of_element_located(locator1))
        browser.find_element_by_xpath(//li[text()="个人设置"]).click()
        locator2 = (class name, header)
        WebDriverWait(browser, 10).until(EC.presence_of_element_located(locator2))
        time.sleep(1)
        browser.find_elements_by_xpath(//input[@class="el-input__inner"])[1].clear()
        browser.find_elements_by_xpath(//input[@class="el-input__inner"])[1].send_keys(value)
        browser.find_element_by_xpath(//span[text()="保存"]).click()
        locator3 = (class name, el-message__content)
        WebDriverWait(browser, 10).until(EC.presence_of_element_located(locator3))
        self.assertIsNotNone(browser.find_element_by_xpath(//p[text()="%s"] % expect_value))
        time.sleep(1)
        self.assertIsNotNone(browser.find_element_by_xpath(//span[text()="%s"] % value))

    def tearDown(self):
        """清除测试环境"""
        time.sleep(1)
        browser.quit()

if __name__ == __main__:
    unittest.main()

代码解释:

selenium负责元素定位,ddt装饰器负责整理特殊字符,以便用一条用例执行完所有测试场景,unittest负责整理测试用例,以及提供setup和teardown方法

 

进阶功能:

1.跳转选项卡

browser.switch_to.window(browser.window_handles[1])

2.跳转frame

browser.switch_to.frame()

3.显示等待 

browser.implicitly_wait(10)

4.隐式等待 

locator1 = (‘class name‘, ‘el-dropdown-menu__item‘)
WebDriverWait(browser, 10).until(EC.presence_of_element_located(locator1))


【原创】python+selenium+ddt+unittest实现web功能自动化测试

原文:https://www.cnblogs.com/huangxiaocheng/p/13847817.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!