BUG report. Новый бас не видит некоторые запросы. Проблеме 3 года @support

Поддержка
  • Проблеме 3 года начиная с 23.2.2 @support
    BAS не видит запрос https://video-weaver ,он там 100% есть, можете через fiddler либо в старом басе увидеть. Соответственно не может собрать его в кеш.
    Вот тестовый скрипт:
    демонстрация ошибки.xml
    Проблема воспроизводиться в записи и запуске
    BAS 23.2.2 - без ошибок. Все что новее с ошибками
    Помниться, что с тех пор изменился формат куки, и куки, сохраненные, в 23.2.2 не подходили для версий выше.
    Windows 10 2023 WHQL - без разницы

    Это не только на этом сайте, но другие в пример я навести не смогу.

  • @nazar21015 said in BUG report. Новый бас не видит некоторые запросы. Проблеме 3 года @support:

    BAS не видит запрос https://video-weaver ,он там 100% есть, можете через fiddler либо в старом басе увидеть. Соответственно не может собрать его в кеш.
    Вот тестовый скрипт:
    демонстрация ошибки.xml
    Проблема воспроизводиться в записи и запуске

    Спасибо за подробное описание проблемы и тестовый скрипт. Передал проблему разработчику

  • @Fox подскажите, в последней версии 4.0 которая не добавлена в автообновление это исправлено?

  • @nazar21015 said in BUG report. Новый бас не видит некоторые запросы. Проблеме 3 года @support:

    @Fox подскажите, в последней версии 4.0 которая не добавлена в автообновление это исправлено?

    В тикете проблемы нет сообщений от разработчика

  • Периодически сталкиваюсь со схожей проблемой. 26.0.2.
    "Был ли запрос" - Был
    "Получить все элементы кэша" - Запроса нет.

  • @spam said in BUG report. Новый бас не видит некоторые запросы. Проблеме 3 года @support:

    Периодически сталкиваюсь со схожей проблемой. 26.0.2.
    "Был ли запрос" - Был
    "Получить все элементы кэша" - Запроса нет.

    Поддерживается только последняя версия BAS

  • @Fox просто наблюдение на конкретной версии, не более.

  • @nazar21015

    Если используется webassembly.org, то сетевые запросы не видно.

    Capture.png

    Я решил, что это баг из разряда на стороне CDP/Chromium, etc, но если снаружи законнектиться к запущенному браузеру в BAS, то можно отловить этот сетевой запрос. То есть баг явно где-то на стороне BAS.

    В рамках BAS это можно решить используя NodeJS: нужно получать remote_debugging_port, также конектится к нему и самому перехватывать сетевые запросы.

    Как-то это сделать в рамках BAS, на форуме обсуждалось несколько раз, в том числе писал и я.

    https://community.bablosoft.com/topic/25787/remote-debugging-port/5

    Proof of concept:

    import asyncio
    import json
    
    import httpx
    from playwright.async_api import async_playwright
    from urllib.parse import urlparse
    import logging
    
    logging.basicConfig(level=logging.DEBUG)
    logger = logging.getLogger(__name__)
    
    
    def _url_to_ws_endpoint(endpoint_url: str) -> str:
        """
        Convert an HTTP endpoint URL to a WebSocket endpoint URL.
    
        :param endpoint_url: The HTTP endpoint URL.
        :return: The WebSocket endpoint URL.
        :raises ValueError: If unable to connect to the HTTP endpoint URL.
        """
    
        if endpoint_url.startswith("ws"):
            return endpoint_url
    
        logger.debug("Preparing WebSocket: retrieving WebSocket URL from %s", endpoint_url)
    
        http_url = endpoint_url if endpoint_url.endswith("/") else f"{endpoint_url}/"
        http_url += "json/version/"
        try:
            response = httpx.get(http_url)
        except httpx.ConnectError as exc:
            raise
    
        if response.status_code != 200:
            raise ValueError(
                f"Unexpected status {response.status_code} when connecting to {http_url}. "
                "This might not be a DevTools server. Consider connecting via ws://."
            )
    
        json_data = json.loads(response.text)
        logger.debug("WebSocket preparation response: %s", json_data)
    
        return str(json_data["webSocketDebuggerUrl"])
    
    
    async def main(remote_debugging_port: int):
        """
        Connect to a browser via a remote debugging port and open a Twitch stream.
    
        :param remote_debugging_port: The port where the remote debugging service is available.
        :type remote_debugging_port: int
        """
    
        ws_endpoint_url = _url_to_ws_endpoint(f"http://localhost:{remote_debugging_port}")
    
        async with async_playwright() as p:
            browser = await p.chromium.connect_over_cdp(ws_endpoint_url)
            context = await browser.new_context()
    
            # Log and intercept response
            async def handle_response(response):
                parsed_url = urlparse(response.url)
                domain = parsed_url.netloc
                print(f'Response Domain: {domain}')
    
            # Listen for all responses
            context.on('response', handle_response)
    
            page = await context.new_page()
            await page.goto('https://player.twitch.tv/?channel=twitchmedia28&parent=127.0.0.1')
    
            while True:
                await asyncio.sleep(10)
    
    
    if __name__ == "__main__":
        # Replace with your actual remote debugging port
        remote_debugging_port = 40391
        asyncio.run(main(remote_debugging_port=remote_debugging_port))
    
    Response Domain: video-weaver.arn03.hls.ttvnw.net<=====
    Response Domain: video-weaver.arn03.hls.ttvnw.net <=====
    Response Domain: video-edge-c5603c.arn03.abs.hls.ttvnw.net
    Response Domain: reporting.cdndex.io
    Response Domain: video-weaver.arn03.hls.ttvnw.net <=====
    Response Domain: video-edge-c5603c.arn03.abs.hls.ttvnw.net
    Response Domain: gql.twitch.tv
    
  • это все замечательно но я в а**** что еще не фикс)