当前位置:首页 » 《随便一记》 » 正文

Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)_laofashi2015的专栏

23 人参与  2022年01月12日 13:25  分类 : 《随便一记》  评论

点击全文阅读


        本篇记录基于Python+Selenium.webdriver实现WEB端UI自动化测试,其中测试用例使用excel维护。为了在实际项目种的扩展应用,建议学习webdriver的元素定位方法,欢迎在评论区沟通讨论。

1.项目选取(登录页无验证码校验的项目)

该示例选取的是登录页不需要输入验证码校验的基础页面(考虑到现在大部分项目都是需要进行验证码校验的,后面研究后再出一篇相关的分享。)

2.环境搭建

2.1安装Python

官网目前已经更新到python3.9.7,大家可以到官网下载并安装

安装包地址:Welcome to Python.org

2.2安装Selenium

命令:pip install selenium

或使用pycharm安装

2.3安装浏览器驱动

1.以Google Chrome浏览器为例,打开浏览器--帮助--关于Google Chrome,查看浏览器版本。

2.访问http://chromedriver.storage.googleapis.com/index.html,下载浏览器对应版本号的驱动软件。

3.驱动文件放到python的安装目录下(和python.exe相同目录)。

3.项目示例

 3.1测试数据

包括编号、用例描述、元素定位方法及对应数据,定位到元素后的操作方法及数据。

3.2 通用脚本代码(可复用)

示例脚本:Selenium_UI_Test.py
from selenium import webdriver
from selenium.webdriver.support.select import Select

class Selenium_UI_Test01(object):
    """
    1.8种元素定位方法
    2.quit()-退出,关闭所有标签页;
    3.refresh()-浏览器刷新
    """
    def selemium_find_element(self,driver,method,data):
        if method == "find_element_by_id":
            return driver.find_element_by_id(data)
        elif method == "find_element_by_name":
            return driver.find_element_by_name(data)
        elif method == "find_element_by_class_name":
            return driver.find_element_by_class_name(data)
        elif method == "find_element_by_tag_name":
            return driver.find_element_by_tag_name(data)
        elif method =="find_element_by_link_text":
            return driver.find_element_by_link_text(data)
        elif method == "find_element_by_partial_link_text":
            return driver.find_element_by_partial_link_text(data)
        elif method == "find_element_by_xpath":
            return driver.find_element_by_xpath(data)
        elif method == "":
            return driver.find_element_by_css_selector(data)
        elif method =='refresh':
            return driver.refresh()
        elif method =='quit':
            return driver.quit()
        else:

            print("请检查元素定位方法是否正确!")
    #定位到元素后可执行的操作
    #1.点击和输入:clear()-清空输入框、click()-点击、send_keys()-发送关键字
    def operator_element(self,element,method,data):
        if "click" in method:
            element.click()
        elif "send_keys" in method:
            element.send_keys(data)
        elif "clear" in method:
            element.clear()
        elif 'select' in method:
            Select(element).select_by_index(data)
        else:
            print("请检查操作方法是否正确!")

3.3测试用例脚本

示例脚本:

Selenium_UI_Test_gsc.py

读取excel中的测试用例,调用通用脚本中定义的方法,执行测试用例。

from openpyxl import load_workbook
from selenium import webdriver
import common.Selenium_UI_Test as SUT
sut = SUT.Selenium_UI_Test01()
import time
t = time.strftime("%Y%m%d%H%M")

driver = webdriver.Chrome()
driver.get("https://www.52shici.com/")
wb = load_workbook("..\\datas\我爱古诗词UI测试.xlsx")
ws = wb.worksheets[0]
for row in ws.iter_rows(min_row=2,max_row=ws.max_row):#跳过首行表头信息
    method1= row[2].value
    data1 = row[3].value
    method2 = row[4].value
    data2 = row[5].value
    element = sut.selemium_find_element(driver,method1,data1)
    result=sut.operator_element(element,method2,data2)

    row[6].value="pass"

wb.save(f"..\\Reports\我爱古诗词UI测试_{t}.xlsx")

3.4执行结果

自动打开浏览器,跳转到登录页面并完成登录,自动输入页面信息并提交。

 自动生成excel测试结果


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/33108.html

测试  元素  定位  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 完结文问越芙宁结局番外列表_完结文问越芙宁结局番外(沈问越苏芙宁)
  • 侯府断亲?重生嫡女惨虐全家!小说(沈清陆曜)+前传(侯府断亲?重生嫡女惨虐全家!)阅读
  • 热文推荐慕晚安陆晏霆霆爷家的小妖精又撩又飒小说大结局(霆爷家的小妖精又撩又飒)书荒必看列表
  • 岁月杳杳人不归高质量好文(裴烬野),岁月杳杳人不归高质量好文
  • 高分_等不到鬓雪相拥小说(容临渊云朝朝)(等不到鬓雪相拥)全本完整阅读
  • 等不到鬓雪相拥后续在线列表_等不到鬓雪相拥后续在线(云朝朝容临渊)
  • 完结文铁马冰河入梦来完结文列表_完结文铁马冰河入梦来完结文(陆知栩褚明策)
  • 睁眼大婚日,我踹了渣夫抱紧金大腿(云筝厉无恙)全书浏览_睁眼大婚日,我踹了渣夫抱紧金大腿全书浏览
  • (乱世伽黎)顾承煊余芊芊乱世伽黎后续一口气无广告全书章节表
  • 全书浏览重生后联姻丈夫爱上KTV小妹我死遁了后续免费(姜满裴聿琛温舒柠)_重生后联姻丈夫爱上KTV小妹我死遁了后续免费(姜满裴聿琛温舒柠)全书结局
  • 重生后联姻丈夫爱上KTV小妹我死遁了后续免费姜满裴聿琛温舒柠完本_重生后联姻丈夫爱上KTV小妹我死遁了后续免费(姜满裴聿琛温舒柠)
  • 高考前,我拒绝再为全班求护身符免费阅读_林薇薇年年大反击_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1