Skip to content

Commit 3e350dd

Browse files
author
cloudQuant
committed
update logs
1 parent 9d7c061 commit 3e350dd

2 files changed

Lines changed: 443 additions & 48 deletions

File tree

logs/tests/http_fix.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
# HTTP协议强制修正插件
3+
# 注册这个插件来确保Pytest和Playwright使用HTTP连接
4+
5+
import os
6+
import sys
7+
from urllib.parse import urlparse, urlunparse
8+
9+
# 强制使用HTTP
10+
def force_http(url):
11+
if not url or not isinstance(url, str):
12+
return url
13+
14+
# 解析URL
15+
parsed = urlparse(url)
16+
17+
# 如果是HTTPS,则转换为HTTP
18+
if parsed.scheme == 'https':
19+
components = list(parsed)
20+
components[0] = 'http'
21+
return urlunparse(tuple(components))
22+
return url
23+
24+
# 覆盖playwright的goto方法
25+
def patch_playwright_methods():
26+
try:
27+
# 尝试导入playwright
28+
from playwright.sync_api import Page
29+
30+
# 修补Page.goto方法
31+
if not hasattr(Page, '_original_goto'):
32+
Page._original_goto = Page.goto
33+
34+
def patched_goto(self, url, **kwargs):
35+
patched_url = force_http(url)
36+
print(f"Playwright: 将URL从 {url} 更改为 {patched_url}")
37+
return self._original_goto(patched_url, **kwargs)
38+
39+
Page.goto = patched_goto
40+
print("Playwright goto方法已被覆盖以强制使用HTTP")
41+
except ImportError:
42+
print("Playwright模块不可用")
43+
pass
44+
45+
# 注册插件函数
46+
def pytest_configure(config):
47+
print("
48+
启用HTTP协议强制插件...")
49+
50+
# 确保base_url使用HTTP
51+
if hasattr(config.option, 'base_url'):
52+
original_base_url = getattr(config.option, 'base_url', None)
53+
if original_base_url and original_base_url.startswith('https'):
54+
setattr(config.option, 'base_url', force_http(original_base_url))
55+
print(f"Base URL已从 {original_base_url} 更改为 {config.option.base_url}")
56+
57+
# 修补 Playwright 方法
58+
patch_playwright_methods()
59+
60+
print("HTTP协议强制插件加载完成!")

0 commit comments

Comments
 (0)