Chrome Dev Tools プロトコルがあり、UI テストでリクエストを送信した後に webSocketFrameReceived を受信できるため、Pyppeteer ライブラリを使用します。ソケットの応答を端末に出力できましたが、それは私が望んでいるものではありません。応答パラメーターの 1 つのステータス (スクリーンショットhttps://www.screencast.com/t/4wKSIcPjL9Tでマーク) に応じて、テストを別の方法で続行する必要があります。これどうやってするの?ソケット応答を処理するには? 答えを Python 辞書に保存しますか? 何か案が
import asyncio
from pyppeteer import launch
import time
import pprint
import json
async def test():
args = ['--start-maximized']
browser = await launch(
args=args,
headless=False,
# args=['--no-sandbox'],
# autoClose=False
)
page = await browser.newPage()
await page.goto('https://example.com/')
await page.setViewport({'width': 1920, 'height': 1080})
# create CDP Session
cdp = await page.target.createCDPSession()
await cdp.send('Network.enable')
# Login
await page.type('input[name=login]', 'login')
await page.type('input[name=password]', 'password')
await page.click('button[type=submit]')
time.sleep(2)
# Fill in the request
await page.type('input[name=symbol]', 'ACY')
await page.type('input[name=quantity]', '500')
await page.click('selector')
await page.type('selector', 'Text')
await page.keyboard.press('Enter')
await page.click('button[type=submit]')
# Waiting for the status of "Pending"
await page.waitForSelector('selector, {'timeout': 5000})
def printResponse(response):
pprint.pprint(response)
# Calls printResponse when a websocket is received
cdp.on('Network.webSocketFrameReceived', printResponse)
# Calls printResponse when a websocket is sent
# cdp.on('Network.webSocketFrameSent', printResponse)
await asyncio.sleep(20)
# await page.close()
# await browser.close()
asyncio.get_event_loop().run_until_complete(test_best_location_accept())