提交 f68da190 authored 作者: 彭甘宇's avatar 彭甘宇

新增成都太行项目,实现成都太行预定会议的部分功能自动化;

上级 a1ec7d2d
......@@ -64,6 +64,8 @@ def browser_init(login_type):
options.add_argument('--disable-blink-features=AutomationControlled')
# 允许不安全的本地主机运行,通常用于开发和测试环境
options.add_argument('--allow-insecure-localhost')
# 使用无痕窗口
options.add_argument('--incognito')
# 使用webdriver_manager自动下载并管理chromedriver
driver_path = ChromeDriverManager().install()
......@@ -87,6 +89,7 @@ def browser_init(login_type):
GSTORE['wd'] = wd
# 标记初始化过程完成
INFO("'----------' 浏览器初始化完成 '----------'")
return wd
except Exception as e:
# 捕获并记录初始化过程中的任何异常
logging.error(f"浏览器初始化失败:{e}")
......@@ -211,7 +214,7 @@ def safe_send_keys(element_locator, value, wd):
element = WebDriverWait(wd, 5).until(EC.visibility_of_element_located(element_locator))
element.clear() # 清除元素的当前值
element.send_keys(value) # 向元素发送指定的键值
sleep(3)
element.send_keys(Keys.ENTER) # 模拟按下回车键
except TimeoutException:
# 如果元素在指定时间内未被找到或不可点击,打印超时异常信息
INFO(f"超时异常:元素 {element_locator} 在20秒内未找到或无法点击。")
......
import sys
import os
from win32trace import flush
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建统一平台的绝对路径
platform_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(platform_path)
# 导入模块
from 统一平台.base.bases import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建XLSX文件的绝对路径
xlsx_file_path = os.path.join(current_dir, '..', '..', 'data', '统一平台PC端测试用例.xlsx')
class Unified_Platform_0001:
#执行指令:
# cd ./统一平台/
# hytest --tag 成都太行
tags = ['会议预定','成都太行']
ddt_cases = read_xlsx_data(xlsx_file_path, sheet_name="新建会议&")
def teststeps(self):
wd = GSTORE['wd']
name = self.name
wd.refresh()
for step in self.para:
locator_type = get_by_enum(step.get('locator_type'))
locator_value = step.get('locator_value')
element_type = step.get('element_type')
element_value = step.get('element_value')
expented_result = step.get('expented_result')
print(f"执行JSON:{step}")
# # 添加刷新页面的判断
# if element_type == "refresh":
# wd.refresh()
if step.get("page") == "HomeCDTH":
if element_type == "input":
safe_send_keys((locator_type, locator_value), element_value, wd)
sleep(1)
elif element_type == "click":
safe_click((locator_type, locator_value), wd)
sleep(1)
elif element_type == "getText":
# 获取提示文本
notify_text = elment_get_text((locator_type,locator_value), wd)
INFO(f"获取弹窗提示内容为:{notify_text}")
CHECK_POINT("判断是否跟预期一致", expented_result == notify_text)
SELENIUM_LOG_SCREEN(wd, "50%")
\ No newline at end of file
import sys
import os
from time import sleep
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建统一平台的绝对路径
platform_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(platform_path)
# 导入模块
try:
from 统一平台.base.bases import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 统一平台.base.bases import *
def suite_setup():
STEP(1, "初始化浏览器")
browser_init("成都太行")
wd = GSTORE['wd']
STEP(2, "登录系统")
safe_send_keys((By.XPATH, "//input[@placeholder='手机号/用户名/邮箱']"),"admin@pgy",wd)
safe_send_keys((By.XPATH, "//input[@placeholder='密码']"),"Ubains@1357",wd)
safe_send_keys((By.XPATH, "//input[@placeholder='图形验证']"),"csba",wd)
safe_click((By.XPATH, "//span[@class='el-checkbox__inner']"),wd)
sleep(2)
safe_click((By.XPATH, "//div[@id='pane-1']//div//span[contains(text(),'登录')]"),wd)
sleep(2)
def suite_teardown():
browser_quit()
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论