Open
Description
为什么移动距离计算不出来?
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() # 调用内部函数
Metadata
Assignees
Labels
No labels
Activity