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 подобных инструментов?

Может быть есть какие-нибудь идеи от умельцев написания автоматизированных тестов?
  • Вопрос задан
  • 767 просмотров
Решения вопроса 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... . Но это для разработчиков сайтов. Для пользователей же придётся писать своё приложение
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 11:08
5000 руб./за проект
19 апр. 2024, в 10:59
150000 руб./за проект
19 апр. 2024, в 10:02
6000 руб./за проект