почему опция задержки не работает в методе mouse.move, когда я использую его в pyppeteer для идентификации пропуска - PullRequest
0 голосов
/ 04 декабря 2018

Я пишу тестовый код, чтобы пропустить определение, которое является блоком ползунка.и я использую модуль pyppeteer.но когда я попытался навести курсор на блок слайдера и переместить мышь, я обнаружил, что скорость перемещения не может контролироваться, хотя я использую опцию задержки в методе перемещения.кажется, не работает.

мой код такой:

@tries(retry_if_result_none)
async def mouse_slide(box=None, page=None):
    try:
        await page.hover('#nc_1_n1z')    #move to slider button
        await page.mouse.down()             # press tee mouse
        await page.mouse.move(box['x']+box['width'], box['y'], {'delay': random.randint(1000, 2000)})   # move mouse to speial location
        await page.mouse.up()                 # release mouse
    except Exception as e:
        print(e, '***********************************:slide login False')
        slider_move_text = await page.Jeval('.errloading .nc-lang-cnt', 'node => node.textContent');
        if "哎呀,出错了,点击" in slider_move_text:
            refresh_btn = await page.querySelector('.errloading .nc-lang-cnt a');
            await page.evaluate('(element) => element.click()', refresh_btn);
            await asyncio.sleep(3);
            slider = await page.querySelector('#nocaptcha');
            box = await slider.boundingBox();
        return None
    else:
        await asyncio.sleep(1)
        slider_again = await page.Jeval('.nc-lang-cnt', 'node => node.textContent')
        if slider_again != '验证通过':
            return None
        else:
            await page.screenshot({'path': './headless-slide-result.png'})
            return 1

Код {'delay': random.randint (1000, 2000)} не работает, мышь движется так быстро.есть ли где то, что я использовал, есть проблема?

1 Ответ

0 голосов
/ 09 декабря 2018

mouse.move не имеет опции для задержки.

Вы можете попытаться переместиться и уснуть в цикле, как это:

for (var i = 0; i < 10; i++) {
    await page.mouse.move(i * 10, i * 10);
    await page.waitFor(100);
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...