@Fox Там нет обычного фрейма, с ним BAS и я бы справились.
Тестового скрипта как такового нет - ошибка ввести текст либо кликнуть по полю внутри этого окна.

То есть BAS видит этот PopUp как единый элемент (При попытке обратиться к его частям) с адресом >CSS> #msg_layer
Если поможет код, то вот он:
<div data-long-polling-url="https://tamtam-lp.ok.ru" data-fallback-layer="1" data-fallback-timers="null" data-shadow-root="1" data-preconnect="1" data-load-count="300" data-socket-url="wss://api-messages-ws.ok.ru/websocket" id="msg_layer" data-uid="589343967271" data-path="//st.mycdn.me/static/messages/1-5-8/messages/" class="msg_layer" data-prefix="//st.mycdn.me/static/messages/res" data-version="1-5-8" data-map-url="//maps.ok.ru/osm/{z}/{x}/{y}.png?tkn=kxYuKI68ObFlCBtglOohxZV_thEicort41g0kxkt8olN2a6ovg1OCg">
- Здесь толпа каких-то пустых <DIV> -
<div class="chat_loader_tx">
data-long-polling-url - я так понимаю, тут не iFrame, а какая-то конструкция, которая прямо в этот момент вызывает API и подгружает сообщения (Даже токен сразу прописывается в теге). Но если не брать это в внимание, то вопрос прежний - в момент, когда сообщения уже загружены на страницу, они в теории являются частью DOM и должны быть доступны для обращения по MATCH или CSS-селекторам.
При этом xPath к элементу через F12 какой-то находится:
/html/body/div[16]/div/div[2]/div[1]/div[2]//msg-app/main/msg-page/div[1]/msg-chats-panel/div/msg-chats-list/msg-chats-list-item[2]/a/div[2]/div/msg-chat-last-message
JS path:
document.querySelector("#msg_layer").shadowRoot.querySelector("msg-app > main > msg-page > div.messenger_side > msg-chats-panel > div > msg-chats-list > msg-chats-list-item:nth-child(3) > a > div.text > div > msg-chat-last-message")
Но если я внутри BAS из F12 скопирую xPath:
//*[@id="msg_layer"]//msg-app/main/msg-page/div[1]/msg-chats-panel/div/msg-chats-list/msg-chats-list-item[2]/a
То он у меня найдётся только до этого самого окна:

А целиком - уже нет:
