Commit 346c94fa by Administrator

2.19提交

parent e20a0da0
...@@ -2,6 +2,7 @@ import time ...@@ -2,6 +2,7 @@ import time
import pyautogui import pyautogui
import pyperclip import pyperclip
from selenium.webdriver import Keys
from selenium.webdriver.support.select import Select from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support import expected_conditions as EC
...@@ -18,8 +19,6 @@ class BasePage: ...@@ -18,8 +19,6 @@ class BasePage:
def __init__(self): def __init__(self):
self.driver = DriverUtils.get_web_driver() self.driver = DriverUtils.get_web_driver()
self.logger = None
self.set_logger()
# 查找元素 # 查找元素
...@@ -36,7 +35,13 @@ class BasePage: ...@@ -36,7 +35,13 @@ class BasePage:
# 定义该元素对于的文本 # 定义该元素对于的文本
ele = self.find_el(loc) ele = self.find_el(loc)
# 先清空 # 先清空
ele.clear() # ele.clear()
# 使用 JavaScript 强制清空输入框中的文本
# self.driver.execute_script("arguments[0].value = '';", ele)
# 使用键盘操作选中并删除文本
time.sleep(1)
ele.send_keys(Keys.CONTROL + "a") # 选中所有文本
ele.send_keys(Keys.DELETE) # 删除选中的文本
# 再输入 # 再输入
ele.send_keys(value) ele.send_keys(value)
...@@ -63,6 +68,11 @@ class BasePage: ...@@ -63,6 +68,11 @@ class BasePage:
# 调用select选择方法 # 调用select选择方法
sle.select_by_visible_text(text) sle.select_by_visible_text(text)
def get_text_loc(self,loc):
return self.find_el(loc).get_attribute("innerText")
def get_text_ele(self, ele):
return ele.get_attribute("innerText")
# 选择文件 # 选择文件
def select_document(self,path_str=None): def select_document(self,path_str=None):
time.sleep(1) time.sleep(1)
...@@ -87,38 +97,38 @@ class BasePage: ...@@ -87,38 +97,38 @@ class BasePage:
pyautogui.press('enter') # 模拟按下回车键 pyautogui.press('enter') # 模拟按下回车键
time.sleep(2) time.sleep(2)
# 设置日志记录器 # # 设置日志记录器
def set_logger(self): # def set_logger(self):
# 检查记录器是否已经存在,如果存在,则直接返回 # # 检查记录器是否已经存在,如果存在,则直接返回
if self.logger: # if self.logger:
return # return
#
logging.basicConfig(level=logging.INFO) # logging.basicConfig(level=logging.INFO)
self.logger = logging.getLogger(__name__) # self.logger = logging.getLogger(__name__)
# 创建一个处理程序,用于输出到控制台 # # 创建一个处理程序,用于输出到控制台
console_handler = logging.StreamHandler() # console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO) # console_handler.setLevel(logging.INFO)
# 创建一个处理程序,用于输出到文件 # # 创建一个处理程序,用于输出到文件
self.file_handler = logging.FileHandler('business_knowledge1.log', encoding='utf-8') # self.file_handler = logging.FileHandler('business_knowledge1.log', encoding='utf-8')
self.file_handler.setLevel(logging.INFO) # self.file_handler.setLevel(logging.INFO)
# 创建一个格式化器,用于设置日志格式 # # 创建一个格式化器,用于设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 将格式化器添加到处理程序 # # 将格式化器添加到处理程序
console_handler.setFormatter(formatter) # console_handler.setFormatter(formatter)
self.file_handler.setFormatter(formatter) # self.file_handler.setFormatter(formatter)
# 先清空已有的处理程序 # # 先清空已有的处理程序
self.logger.handlers.clear() # self.logger.handlers.clear()
# 检查记录器中是否已经存在相同类型的处理程序,如果不存在,则添加 # # 检查记录器中是否已经存在相同类型的处理程序,如果不存在,则添加
if console_handler not in self.logger.handlers: # if console_handler not in self.logger.handlers:
self.logger.addHandler(console_handler) # self.logger.addHandler(console_handler)
if self.file_handler not in self.logger.handlers: # if self.file_handler not in self.logger.handlers:
self.logger.addHandler(self.file_handler) # self.logger.addHandler(self.file_handler)
print(len(self.logger.handlers)) # print(len(self.logger.handlers))
def log_info(self, message):
self.logger.info(message)
# #
def close_logger(self): # def log_info(self, message):
self.file_handler.close() # self.logger.info(message)
# #
# def close_logger(self):
# self.file_handler.close()
from selenium.webdriver.common.by import By
from Pages.businessKnowledge_page import BusinessKnowledgePage
from Pages.login_page import LoginPage
from Util.Util import DriverUtils
import time
from loguru import logger
class TestBusinessKnowledge:
def setup_class(self):
# 在所有的测试用例脚本之前执行一次
# 完成公共部分初始化
self.driver = DriverUtils.get_web_driver()
self.login_page = LoginPage()
self.business_page = BusinessKnowledgePage()
def teardown_class(self):
# 在所有的测试用例脚本之后执行一次
self.driver.quit()
pass
def setup_method(self):
# 在每个测试用例脚本之前执行一次
self.driver.get('https://rays7.raysgo.com/login')
self.login_page.login_username("17373027967","3149390154Li")
self.business_page.entranceAi() # 进入AI编辑室
self.business_page.entranceBusinessKnowledge() # 进入企业知识库
time.sleep(3)
def teardown_method(self):
# 在每个测试用例脚本之后执行一次
pass
# 新建文件夹 0-20 重复文件名
def test_newFolder_case001(self):
folder_name = "XXXXX"
self.business_page.newFolderControl(folder_name)
time.sleep(3)
# 断言
folders = self.business_page.find_el(self.business_page.folders).find_elements(By.XPATH,".//span")
assert folder_name == self.business_page.get_text_ele(folders[(len(folders)-1)])
logger.info("新建文件成功")
# 更新文件夹名字 0-20 重复文件名
def test_updateFolder_case001(self):
expect_folder_name = "xxxx322x"
actual_folder_name = self.business_page.updateFolderControl(expect_folder_name)
time.sleep(2)
# 断言
assert actual_folder_name == expect_folder_name
logger.info("更新文件名字成功")
# 删除文件夹
def test_deleteFolder_case001(self):
self.business_page.deleteFolderControl()
# 切换文件夹
def test_traverse_folder(self):
try:
self.business_page.traverseFolder()
assert 1 == 1
except Exception as e:
logger.info("错误类型:{e}")
# 搜索
def test_search_document(self, key_name = "世界"):
try:
documents = self.business_page.searchDocument(key_name)
flag = self.business_page.isExistKeyInDocument(key_name,documents)
assert flag == True
except Exception as e:
logger.info(f"发生报错:报错信息为{e}")
# 文档上传
def test_upload_document_case001(self):
stry_paths = []
stry_paths.append("t"+str(0+1)+".txt")
self.business_page.upload_document_helper.uploadDocumentControl(stry_paths)
time.sleep(10)
# 断言
assert "学习成功" == self.business_page.get_text_ele(self.business_page.document_list_helper.firstDocument)
# 导入网站
def test_upload_website_case001(self):
self.business_page.upload_document_helper.uploadUrlControl("https://blog.csdn.net/FezZZZ/article/details/120878765")
time.sleep(10)
# 断言
assert "学习成功" == self.business_page.get_text_ele(self.business_page.document_list_helper.firstDocument)
...@@ -15,3 +15,5 @@ class DriverUtils: ...@@ -15,3 +15,5 @@ class DriverUtils:
cls.__driver.implicitly_wait(10) cls.__driver.implicitly_wait(10)
return cls.__driver return cls.__driver
...@@ -4,3 +4,7 @@ ...@@ -4,3 +4,7 @@
2024-02-19T04:58:18.926796+0800 - INFO - 登陆成功 2024-02-19T04:58:18.926796+0800 - INFO - 登陆成功
2024-02-19T05:00:45.136661+0800 - INFO - 登陆成功 2024-02-19T05:00:45.136661+0800 - INFO - 登陆成功
2024-02-19T05:12:21.817077+0800 - INFO - 此时菜单点击的为:文档解读 2024-02-19T05:12:21.817077+0800 - INFO - 此时菜单点击的为:文档解读
2024-02-19T11:11:47.462293+0800 - INFO - 点击选择了50%
2024-02-19T18:04:49.471174+0800 - INFO - 发生报错:报错信息为'WebElement' object has no attribute 'get_element'
2024-02-19T18:10:18.397061+0800 - INFO - 发生报错:报错信息为'WebElement' object has no attribute 'get_element'
2024-02-19T18:15:01.900058+0800 - INFO - 发生报错:报错信息为'WebElement' object has no attribute 'getAttribute'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment