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

处理因为屏幕分辨率导致获取不到元素问题。

上级 57547ecf
1、整合脚本使用hytest框架,需要手动下载本地环境:pip install hytest 1、整合脚本使用hytest框架,需要手动下载本地环境:pip install hytest
2025-01-20
1、处理因为屏幕分辨率异常导致获取不到元素问题。
2024-12-12 2024-12-12
1、新增“区域类型-新增、编辑、删除”代码; 1、新增“区域类型-新增、编辑、删除”代码;
......
...@@ -9,6 +9,9 @@ import hmac ...@@ -9,6 +9,9 @@ import hmac
import hashlib import hashlib
import base64 import base64
import time import time
import win32api
import win32con
import win32gui
import logging import logging
from hytest import * from hytest import *
import pandas as pd import pandas as pd
...@@ -25,7 +28,8 @@ from time import sleep ...@@ -25,7 +28,8 @@ from time import sleep
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def open_browser(): def open_browser():
INFO('打开默认浏览器') INFO('打开默认浏览器')
# wd = webdriver.Chrome() # 更改显示屏分辨率为1920x1080
success = change_resolution(1280, 1024)
edge_options = Options() edge_options = Options()
edge_options.add_argument('--ignore-certificate-errors') edge_options.add_argument('--ignore-certificate-errors')
edge_options.add_argument('--disable-blink-features=AutomationControlled') edge_options.add_argument('--disable-blink-features=AutomationControlled')
...@@ -37,6 +41,31 @@ def open_browser(): ...@@ -37,6 +41,31 @@ def open_browser():
wd.maximize_window() wd.maximize_window()
wd.implicitly_wait(10) wd.implicitly_wait(10)
def change_resolution(width, height):
# 获取当前显示器的设备上下文(Device Context, DC)
device = win32api.EnumDisplayDevices(None, 0)
dm = win32api.EnumDisplaySettings(device.DeviceName, win32con.ENUM_CURRENT_SETTINGS)
if dm.PelsWidth != width or dm.PelsHeight != height:
print(f"Changing resolution to {width}x{height}")
dm.PelsWidth = width
dm.PelsHeight = height
# CDS_TEST 是测试模式,如果设置成功则不实际应用更改
if win32api.ChangeDisplaySettings(dm, win32con.CDS_TEST) != win32con.DISP_CHANGE_SUCCESSFUL :
print("The requested resolution change is not supported.")
return False
# 实际应用新的分辨率设置
if win32api.ChangeDisplaySettings(dm, 0) != win32con.DISP_CHANGE_SUCCESSFUL:
print("Failed to change resolution.")
return False
print("Resolution changed successfully.")
return True
else:
print("The requested resolution is already set.")
return True
def user_login(username, password, captcha): def user_login(username, password, captcha):
wd = GSTORE['wd'] wd = GSTORE['wd']
......
...@@ -4,4 +4,4 @@ tunnels: ...@@ -4,4 +4,4 @@ tunnels:
nat1: nat1:
remote_port: 31135 remote_port: 31135
proto: proto:
tcp: "192.168.1.114:81" tcp: "192.168.5.88:80"
\ No newline at end of file \ No newline at end of file
...@@ -68,8 +68,8 @@ def browser_init(login_type): ...@@ -68,8 +68,8 @@ def browser_init(login_type):
# service = Service(ChromeDriverManager().install()) # service = Service(ChromeDriverManager().install())
# 手动指定ChromeDriver的路径 # 手动指定ChromeDriver的路径
# 自动化运行服务器的chromedriver路径: # 自动化运行服务器的chromedriver路径:
service = Service(r'C:\Users\29194\AppData\Local\Programs\Python\Python310\Scripts\chromedriver.exe') # service = Service(r'C:\Users\29194\AppData\Local\Programs\Python\Python310\Scripts\chromedriver.exe')
# service = Service(r'C:\Program Files\Python310\Scripts\chromedriver.exe') service = Service(r'C:\Program Files\Python310\Scripts\chromedriver.exe')
# 尝试创建WebDriver实例并执行初始化操作 # 尝试创建WebDriver实例并执行初始化操作
try: try:
# 创建WebDriver实例 # 创建WebDriver实例
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论