Selenium 打包为.exe执行
前言:不依赖环境执行,拓展UI自动化使用的场景
一、项目结构介绍
- case:测试用例次存放目录
- config:主要存放yaml文件配置
- ele:元素的定位以及执行动作
- tools:HTMLTestRunner以及webdriver
- ico:生成exe是的图标
- run:主执行程序
二、代码演示
1.创建 yyds.yaml 以及 read_yaml,py
- yyds.yaml
# yyds.yaml - user_name: bky
- pass_word: test666
- base_url: https://account.cnblogs.com/
- read_yaml.py
# coding:utf-8
import yaml
import os, sys # 获取当前脚本所在文件夹路径
curPath = os.path.dirname(os.path.realpath(__file__)) # 获取yaml文件路径
# yamlPath = os.path.join(curPath, "yyds.yaml")
yamlPath = os.path.join(os.path.dirname(os.path.realpath(sys.executable)), './config/yyds.yaml') # open方法打开直接读出来
f = open(yamlPath, 'r', encoding='utf-8')
cfg = f.read()
# print(type(cfg)) # 读出来是字符串
# print(cfg) # d = yaml.load(cfg) # 用load方法转字典
d = yaml.load(cfg, Loader=yaml.FullLoader)
username = d[0]["user_name"]
password = d[1]["pass_word"]
baseurl = d[2]["base_url"]
print("\nUI自动化")
print("\n温馨提示:执行失败请检查Google浏览器版本,当前driver版本104.0.xxx.xxx,如不匹配请自行下载")
print("下载地址:http://chromedriver.storage.googleapis.com/index.html\n") print("登录账号:%s\n登录密码:%s\n访问地址:%s" %(username, password, baseurl)) #print(type(d))
2.创建 login.ele.py 以及 test_all_case.py
- login.ele.py
# -*- coding:UTF-8 -*-
from selenium.webdriver.common.by import By
from time import sleep class Login(): user_loc = (By.ID, "mat-input-0")
pass_loc = (By.ID, "mat-input-1")
login_loc = (By.XPATH, "//span[contains(.,'登录')]") def user_name(self, driver, name):
sleep(1.5)
try:
driver.find_element(*self.user_loc).send_keys(name)
print("\n输入 【%s】 账号成功" %name)
except:
print("\n输入账号失败") def pass_word(self, driver, word):
sleep(1.5)
try:
driver.find_element(*self.pass_loc).send_keys(word)
print("输入 【%s】 密码成功" %word)
except:
print("输入密码失败") def login_button(self, driver):
try:
# el_standard = driver.find_element(*self.login_loc)
# ActionChains(driver).move_to_element(el_standard).perform()
sleep(0.5)
driver.find_element(*self.login_loc).click()
# el_standard.click()
print("登录成功")
except:
print("登录失败")
- test_all_case.py
# -*- coding:UTF-8 -*-
from selenium import webdriver
import config.read_yaml
from ele.login_ele import Login
import unittest
from time import sleep
from selenium.webdriver.chrome.options import Options ''' ㎡ ''' class Test_all(unittest.TestCase):
"""BKY FRMO ㎡"""
@classmethod
def setUpClass(self):
global driver
option = Options()
option.add_experimental_option('useAutomationExtension', False)
option.add_experimental_option("excludeSwitches", ['enable-automation'])
option.add_argument("disable-blink-features=AutomationControlled")
driver = webdriver.Chrome('tools\chromedriver.exe',options=option)
print('加载驱动完成 √')
driver.maximize_window() # 浏览器全屏显示
driver.get(config.read_yaml.baseurl)
print('加载页面完成 √\n') print('正在执行中,请耐心等待...')
print('注:测试报告详见此目录下的report.html\n')
sleep(10) def test_a_login(self):
"""【登录】"""
Login().user_name(driver, name=config.read_yaml.username)
Login().pass_word(driver, word=config.read_yaml.password)
Login().login_button(driver)
3.创建 run.py
- run.py
# -*- coding:UTF-8 -*- from tools.HTMLTestRunner_PY3 import HTMLTestRunner
import unittest
from case.test_all_case import Test_all suit = unittest.TestSuite()
suit.addTest(unittest.makeSuite(Test_all))
with open("report.html", 'wb') as f: # 改为with open 格式
HTMLTestRunner(stream=f, title="UI自动化-测试报告", description="演示Demo").run(suit)
4.执行打包命令
- pyinstaller -i lcon.ico -F -c run.py
5.打包成功后出现dist文件夹,将 run.exe 移到与 run.py 同级即可
6.执行测试生成报告
- run.exe
三、扩展
通过输入配置环境
to be continued...
Selenium 打包为.exe执行的更多相关文章
- Python3.x:打包为exe执行文件(window系统)
Python3.x:打包为exe执行文件(window系统) window系统下发布: 一.安装pyinstaller(PyInstaller 3.3.1) cmd安装命令: pip install ...
- Python脚本打包成exe执行文件
需求 一个教辅目录结构检查工具,目录结构是[书籍]-[章节]-[题目|答案]-[*.jpg],后台有个异步处理的服务,需要强依赖这个目录结构. 书籍解析是单独的pipeline,日志对用户不可见,这里 ...
- 使用fat jar和exe4j把java程序打包成exe执行文件---转载的
java应用编写测试好之后都是jar包或class文件,客户拿到这个东西后一般是不会java开发者那样在命令窗口下面输入运行的.客户要求的就是直接点击应用名称运行.java在方面做得很不友好,开发人员 ...
- Javaweb程序打包或exe执行文件
java程序的打包与发布 这里主要是讲解一下怎样将 Java程序打包成独立运行的exe程序包,以下这种方法应该是最佳的解决方案了.NetDuke的EXE程序包了是使用这种方案制作的.在操作步骤上还是比 ...
- tkinter 打包成exe可执行文件
1.安装pyinstaller pip install pyinstaller 2.打包 打开cmd,切换到需要打包的文件(demo.py)目录.执行 pyinstaller -F -w demo.p ...
- 用pyinstaller打包一个exe程序
打包单个exe文件 -F 选项可以打出一个exe文件,默认是 -D,意思是打成一个文件夹. pyinstaller -F TestDataGen.py 打出的桌面程序去掉命令行黑框 -w 选项可以打桌 ...
- Pyinstaller打包Selenium脚本为exe文件执行问题
由于同事辞职,许多运维工具的维护工作就交到我这里处理了,运维居然没人会Python脚本! 用Selenium编写的一个爬虫脚本cctv.py,需要给不懂软件的人运行.为了不让他去搭建,安装各种包,库, ...
- 关于解决pyinstaller2.1将.py打包成exe文件在中文目录下不能执行的问题
关于解决pyinstaller2.1将.py打包成exe文件在中文目录下不能执行的问题 这个问题困扰我好久了,今天终于非常偶然的在http://www.v2ex.com/t/113856#reply1 ...
- Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例
Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...
- windows环境下把Python代码打包成独立执行的exe
windows环境下把Python代码打包成独立执行的exe可执行文件 有时候因为出差,突然急需处理一批数据.虽然写好的脚本存储在云端随用随取,然而编译的环境还需要重新搭建,模块也需要重新装载,从 ...
随机推荐
- 基于5G/4G智能网关的大货车安全监测方案
大货车是我们身边最常见的货运车辆,从各种原材料到货物成品,都需要大大小小的货车承担过程中的运输工作.而由于货车通常载重多.体积大.行车盲区多,因此也产生较多的交通安全风险. 针对大货车的交通安全保障, ...
- FTP文件夹错误:【打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹】
资源管理器访问FTP服务器报错,提示FTP文件夹错误:[打开FTP服务器上的文件夹时发生错误.请检查是否有权限访问该文件夹]. 详细信息: 200 Switching to ASCII mode. 2 ...
- unity 开发小技巧之C#篇 ----持续更新
1.ToString()方法是可以重写的 2.Start()方法可以主动调用 3.接口可以直接使用 jiekou?.Invoke() 来调用所有继承该接口的方法 4.Json 列表和服务器需要的数据不 ...
- Android studio的基本使用--基础篇
一.新建项目 其实跟IDEA新建项目的流程基本一致,File->New->New project,这样就能够新建出来一个项目啦! 一般情况下,我们都会选择Empty Activity,之后 ...
- 换个脑袋,做个小练习------四则运算系统的随机出题的jsp实现
四则运算出题系统网页界面的实现(别期待,只有俩操作数) index.jsp <%@ page contentType="text/html;charset=UTF-8" la ...
- 操作系统笔记<1>
操作系统的概念 指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配 以提供给用户和其他软件方便的接口和环境 是计算机系统中最基本的系统软件 操作系统的功能 (系统资源 ...
- 组合构造和对应的OGF/EGF Dictionary 备查
目录 Constructions Cycle Multiset construction Powerset construction Admissible unlabelled constructio ...
- Flink 1.0 ProgramInvocationException: Job failed ConnectException: 拒绝连接 (Connection refused)
[问题描述]:[root@hadoop1 flink-1.10.1]# bin/flink run examples/streaming/SocketWindowWordCount.jar --po ...
- MySQL高性能索引策略和查询性能优化
前缀索引和索引选择性 有时候需要索引很长的字符,这会让索引变得大且慢.一个策略是模拟哈希索引. 通常可以索引开始的部分字符,这样可以大大解约索引空间,提高索引效率.但这样会降低索引的选择性. 索引的选 ...
- odoo 开发入门教程系列-一些用户界面
一些用户界面 数据文件 (XML) 参考: 该主题关联文档可以查看Data Files. 上一章,我们通过CSV文件添加了数据.当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时( ...