非常抱歉,我在之前的代码中犯了一个错误。Playwright库中的ElementHandle
对象没有直接的mouse
属性来进行鼠标操作。我向您提供了错误的代码。非常抱歉给您带来困惑。
请使用以下代码进行滑块拖动操作:
from playwright.sync_api import sync_playwright
def drag_slider(page):
slider_selector = 'body > div:nth-child(4) > div > div.ant-modal-wrap > div > div.ant-modal-content'
background_selector ='body > div:nth-child(4) > div > div.ant-modal-wrap > div > div.ant-modal-content > div > div:nth-child(1) > div > div.rc-slider-captcha-panel > div > div.rc-slider-captcha-jigsaw'
slider_handle_selector = 'body > div:nth-child(4) > div > div.ant-modal-wrap > div > div.ant-modal-content > div > div:nth-child(1) > div > div.rc-slider-captcha-control > span'
slider_element = page.wait_for_selector(slider_selector)
background_element = page.wait_for_selector(background_selector)
slider_handle_element = page.wait_for_selector(slider_handle_selector)
slider_element.scroll_into_view_if_needed()
slider_handle_element.scroll_into_view_if_needed()
# 获取滑块的位置信息
handle_bounding_box = slider_handle_element.bounding_box()
handle_x = handle_bounding_box['x']
handle_y = handle_bounding_box['y']
# 获取滑块的宽度
handle_width = handle_bounding_box['width']
# 模拟拖动滑块
slider_handle_element.hover()
page.mouse.down()
page.mouse.move(handle_x + handle_width / 2, handle_y + 1)
page.mouse.move(handle_x + handle_width / 2, handle_y + 1)
page.mouse.move(handle_x + handle_width, handle_y + 1)
page.mouse.up()
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
# 执行滑块拖动操作
drag_slider(page)
# 其他操作
# ...
browser.close()
再次感谢您的耐心和理解。如果还有任何问题,请随时提问。