selenium + pillow 通过元素截图出现错位

原因与解决方法

windows电脑调过缩放与布局,

方法一:将缩放比调回100%
但这样会影响用户的使用体验,没准人家不用200%的缩放会死呢
方法二:我们需要设置浏览器缩放:

# 如缩放为200%时
driver.execute_script('document.body.style.zoom="0.5"')

获取电脑缩放比

from win32 import win32api, win32gui, win32print
from win32.lib import win32con

from win32.win32api import GetSystemMetrics

def get_real_resolution():
    """获取真实的分辨率"""
    hDC = win32gui.GetDC(0)
    # 横向分辨率
    w = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES)
    # 纵向分辨率
    h = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES)
    return w, h

def get_screen_size():
    """获取缩放后的分辨率"""
    w = GetSystemMetrics (0)
    h = GetSystemMetrics (1)
    return w, h

real_resolution = get_real_resolution()
screen_size = get_screen_size()
print(real_resolution)
print(screen_size)

screen_scale_rate = round(real_resolution[0] / screen_size[0], 2)
print(screen_scale_rate)  # 2.0

你可能感兴趣的:(如今的江湖)