liumiaomiao 1 рік тому
батько
коміт
b0f23cd28b

+ 1 - 1
cases/未登录功能/链接验证/check_customer_link.py

@@ -9,6 +9,6 @@ class c1:
         STEP(1,'第一步定义要检查的链接')    #会出现在测试报告
         # 定义要检查的链接列表
         url = "https://www.jianyu360.cn/article/bdprivate/BdyMiE4enNJeicrIzs8NzgFAmVYAUYPAjghKDMOGgJkVGd1MgpcB7w%3D.html"
-        result = apilink.open_url(url)
+        result = apilink.obtain_url_title(url)
         #设置检查点
         CHECK_POINT('pc端客户管理系统导出链接三级页能正常打开',result=='漯河市源汇区大刘镇人民政府2024年5至6月政府采购意向 - 剑鱼标讯')

+ 1 - 1
cases/未登录功能/链接验证/check_pc_url.py

@@ -9,6 +9,6 @@ class c1:
         STEP(1,'第一步定义要检查的链接')    #会出现在测试报告
         # 定义要检查的链接列表
         url = "https://www.jianyu360.cn/nologin/content/ABCY1xdcykeIDYvEll4cE8JIzAvFj1jcXNlKz8kOToeVmdwBAVUCTA%3D.html"
-        result = apilink.open_url(url)
+        result = apilink.obtain_url_title(url)
         #设置检查点
         CHECK_POINT('pc端三级页能正常打开',result=='【湖北省中心】浰河航道整治工程浰河航道整治工程航道工程第3次答疑(标段编号HBSJ-202311SY-006001001) - 剑鱼标讯')

+ 10 - 0
cases/登录功能/链接验证/__st__.py

@@ -0,0 +1,10 @@
+from lib.linkapi import apilink
+
+def suite_setup():
+    # 初始化 Playwright
+    apilink.setup()
+
+
+def suite_teardown():
+    # 关闭浏览器
+    apilink.teardown()

+ 14 - 0
cases/登录功能/链接验证/check_link_svip_buy.py

@@ -0,0 +1,14 @@
+from hytest import *
+from lib.linkapi import apilink
+class c1:
+    #测试用例名称
+    name='pc超级订阅购买页面能否正常打开'
+    #测试步骤
+    def teststeps(self):
+        INFO('测试步骤')
+        url='https://www.jianyu360.cn/swordfish/page_big_pc/free/svip/buy'
+        value='快速链接'
+        result = apilink.check_value_in_source(url,value)
+
+        # 设置检查点
+        CHECK_POINT('pc超级订阅购买页面能否正常打开', result)

+ 1 - 1
cases/登录功能/链接验证/check_pc_url_login.py

@@ -9,7 +9,7 @@ class c1:
         STEP(1,'第一步定义要检查的链接')    #会出现在测试报告
         # 定义要检查的链接列表
         url = "https://www.jianyu360.cn/page_workDesktop/work-bench/page?link=https%3A%2F%2Fwww.jianyu360.cn%2Farticle%2Fcontent%2FABCY1xdcykvNyo4RGt4cE8JIzAvFj1jcXNlKz8jLyE3Z3xwGCtUCe4%253D.html"
-        result = apilink.open_url(url)
+        result = apilink.obtain_url_title(url)
 
         #设置检查点
         CHECK_POINT('pc端三级页能正常打开',result=='工作台')

+ 49 - 2
lib/linkapi.py

@@ -4,14 +4,46 @@ from PIL import Image, ImageChops
 from bs4 import BeautifulSoup
 import requests
 class APILink():
-    #打开链接
-    def open_url(self,url):
+    #打开链接,返回title
+    def obtain_url_title(self,url):
         response = requests.get(url)
         response.encoding = 'utf-8'  # 设置编码为gbk
         soup = BeautifulSoup(response.text, 'html.parser')
         title = soup.title.string
         return title
 
+    #打开链接,status=200,返回true
+    def open_url_status(self,url):
+        response = requests.get(url)
+        status_code = response.status_code
+        if status_code==200:
+            return True
+        else:
+            return False
+
+    def fetch_page_source(self,url):
+        try:
+            response = requests.get(url)
+            response.raise_for_status()  # 检查请求是否成功
+            return response.text  # 返回网页源代码
+        except requests.RequestException as e:
+            print(f"Error fetching the URL: {e}")
+            return None
+
+    def check_value_in_source(self,url,value):
+        page_source = self.fetch_page_source(url)
+        if page_source:
+            if value in page_source:
+                # print(f"'{value_to_check}' exists in the page source.")
+                return True
+            else:
+                # print(f"'{value_to_check}' does not exist in the page source.")
+                return False
+        else:
+            # print("Failed to retrieve the page source.")
+            return False
+
+
     def setup(self):
         # 初始化 Playwright
         self.playwright = sync_playwright().start()
@@ -23,6 +55,21 @@ class APILink():
         self.browser.close()
         self.playwright.stop()
 
+    def obtain_element_text(self,url,element):
+        self.page.goto(url)
+        # 等待元素出现
+        self.page.wait_for_selector(element)
+        # 查找元素
+        element_handle = self.page.locator(element)
+
+        # 获取元素的文本或属性值
+        element_text = element_handle.text_content()
+        # element_attribute = element_handle.get_attribute('属性名')
+        # 设置超时时间
+        self.page.wait_for_timeout(3000)
+        return element_text
+        # print(f'元素的属性值: {element_attribute}')
+
     #网页截图模糊遮罩方法,适用于网页有动态元素,进行遮罩比较
     def save_screenshot_mask(self,url, output_path, elements, clip=None):
         locs = []