Skip to content

滑块匹配结果: {'target_x': 0, 'target_y': 0, 'target': [111, 0, 158, 155]} #252

Open
@2754026865

Description

为什么移动距离计算不出来?

Image

def automate_slider_verification(driver):
    def perform_slider_verification():
        # 等待滑块和背景图元素可用
        slider = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, '.verify-sub-block img'))
        )
        background = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, '.verify-img-panel img'))
        )

        # 获取滑块和背景图的Base64编码
        slider_url = slider.get_attribute("src")
        background_url = background.get_attribute("src")

        # 检查获取的URL是否为None
        if slider_url is None or background_url is None:
            print("错误:未能获取滑块或背景图的URL")
            return

        slider_url = slider_url.replace('data:image/png;base64,', '')
        background_url = background_url.replace('data:image/png;base64,', '')

        # 将Base64编码转换为图像并保存
        base64_to_image(slider_url, 'slider.png')
        base64_to_image(background_url, 'background.png')

        # 使用ddddocr进行滑块匹配
        det = ddddocr.DdddOcr(det=False, ocr=False)

        # 读取临时文件
        with open('slider.png', 'rb') as f:
            target_bytes = f.read()
        
        with open('background.png', 'rb') as f:
            background_bytes = f.read()

        # 进行滑块匹配,使用simple_target=True
        res = det.slide_match(target_bytes, background_bytes, simple_target=True)
        print("滑块匹配结果:", res)

        # 使用target计算滑块的移动距离
        if 'target' in res:
            distance = res['target'][0] + 60  # 计算滑块的目标位置,加上10以调整
            tracks = get_tracks(distance)  # 获取移动轨迹
        else:
            print("错误:返回结果中缺少目标坐标信息")
            return

        # 模拟滑动操作
        slider_button = driver.find_element(By.CSS_SELECTOR, '.verify-move-block')
        move_to_gap(driver, slider_button, tracks)  # 移动滑块

        print("滑块操作完成")

    perform_slider_verification()  # 调用内部函数

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions