pro_co_ru
@pro_co_ru
Старший инженер-программист

Как осуществить передачу параметров между вкладок разных сторонних сайтов из консоли браузера?

Добрый день.
Пытаюсь автоматизировать процесс выставления приказов на iqoption.com с использованием сигналов получаемых с tradingview.com

Добрался до того, что в Google Chrome консоли выполняю скрипт, который выводит в консоль значение переменной last_signal из поля description моего сигнала:

var alert_list = document.getElementsByClassName("alert-list")[1];
alert_list.addEventListener('DOMSubtreeModified', function(){
    var last_signal = document.getElementsByClassName('description-inner')[0].innerHTML;
    console.log(last_signal);
    // ...
}, false);


Ну а со стороны iqoption.com нажатия на кнопки Выше или Ниже произвожу так:
document.getElementsByClassName('call-btn')[0].click();
document.getElementsByClassName('put-btn')[0].click();


Теперь, ищу способ, как можно передать событие из вкладки с tradingview.com во вкладку с iqoption.com со значением переменной last_signal.

Может быть можно это сделать как-то с помощью написания расширения для браузера, или с помощью tampermonkey подобных инструментов?

Может быть есть какие-нибудь идеи от умельцев написания автоматизированных тестов?
  • Вопрос задан
  • 780 просмотров
Решения вопроса 1
pro_co_ru
@pro_co_ru Автор вопроса
Старший инженер-программист
Пока что решил таким способом:

// запускать в консоле tradingview.com

    var iqoption_win = window.open('https://iqoption.com/ru/options', '_blank');
    var alert_list = document.getElementsByClassName("alert-list")[1];
    alert_list.addEventListener('DOMSubtreeModified', function(){
        var last_signal = document.getElementsByClassName('description-inner')[0].innerHTML;
        console.log(last_signal);
        iqoption_win.postMessage(last_signal, 'https://iqoption.com/ru/options');
    }, false);

// ------------------------------------------------------------
// запускать в консоле только что открытого из тредингвью iqoption

window.addEventListener('message', function(e) {
	var message = e.data;
	console.log(message);
        document.getElementsByClassName(message.toLowerCase()+'-btn')[0].click();
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@tasce
По идее, браузер должен запрещать доступ к другим сестренским(открытым не нашим сайтом) вкладкам. А доступ к дочерним вкладкам/окнам осуществляется через передачу сообщений между ними. https://developer.mozilla.org/en-US/docs/Web/API/W... . Но это для разработчиков сайтов. Для пользователей же придётся писать своё приложение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект
21 нояб. 2024, в 21:30
500 руб./за проект