kaliiiiiiiiii/Selenium-Driverless

How can I operate the browser slider verification code in Selenium-Driverless like in Playwright

Closed this issue · 3 comments

`

in Selenium-Driverless

    bg_element = await driver.find_element(By.XPATH, '//div[@class="kc-content"]/div[@class="kc-bg"]/img',
                                           timeout=10)
    bg_src = await bg_element.get_attribute(name='src')
    print(f"bg Image src: {bg_src}")

    fg_element = await driver.find_element(By.XPATH, '//div[@class="kc-content"]/div[@class="kc-fg"]/img')
    fg_src = await fg_element.get_attribute(name='src')
    print(f"bg Image src: {fg_src}")

    distance = await get_distance(bg_src, fg_src)
    print(distance)
    tracks = get_tracks(distance)
    print(tracks)
    move_btn = await driver.find_element(By.XPATH, '//div[@class="kc-move-btn"]')
    move_btn_box = await move_btn.location
    x = move_btn_box['x']
    pointer = driver.current_pointer
    await pointer.down(move_btn_box)
    for track in tracks:
        await pointer.move_to(x + track, round(random.uniform(1.0, 4.0), 0), total_time=2)
        x += track
    await pointer.up()

   #in playwright
   bg_element = page.locator('//div[@class="kc-content"]/div[@class="kc-bg"]/img')
   bg_img_url = await bg_element.get_attribute('src')
   fg_element = page.locator('//div[@class="kc-content"]/div[@class="kc-fg"]/img')
   fg_img_url = await fg_element.get_attribute('src')
   distance = await get_distance(bg_img_url, fg_img_url)
   tracks = get_tracks(distance)
   move_btn = await page.query_selector('//div[@class="kc-move-btn"]')
   move_btn_box = await move_btn.bounding_box()
   move_btn_center = {
    'x': move_btn_box['x'] + move_btn_box['width'] / 2,
    'y': move_btn_box['y'] + move_btn_box['height'] / 2
}
   await page.mouse.move(move_btn_center['x'], move_btn_center['y'])
   await page.mouse.down()
   x = move_btn_center['x']
   for track in tracks:
       await page.mouse.move(x + track, round(random.uniform(1.0, 4.0), 0), steps=3)
       x += track
  await page.mouse.up()

`

don't ask quesions in an issue

Also, you've got parts which are missing in the code (def get_tracks(distance): for example)
I can't help you further with it therefore

另外,你的代码中缺少一些部分(def get_tracks(distance):例如) 我无法进一步帮助你,因此

distance is the length of the sliding x-axis