подключение расширения MetaMask к сайту

  • Автор темы Автор темы AsuprA
  • Дата начала Дата начала

AsuprA

Client
Регистрация
20.04.2023
Сообщения
73
Реакции
2
Баллы
8
Здравствуйте. Прошу помощи со следующим вопросом. На некоторых сайтах не могу подключить кошелёк Метамаск к сайту. Например к https://app.eralend.com/
Нажимаю Connect Wallet, появляется всплывающее окно, но его в дереве элементов нет, протыкал все элементы. Может есть возможность в зенке нажимать на элемент через поиск текста или как справиться с этой задачей?
 

Вложения

  • Снимок экрана 2024-02-27 002022.png
    Снимок экрана 2024-02-27 002022.png
    130 KB · Просмотры: 162
В DevTools смотри и там же составляй xpath
А можно немного подробнее, что именно нужно найти в devtools? И обязательно запрос составлять через xpatch? Поиск слова Метамаск результатов не дал.
 
Может вы об окне расширения? Оно в отдельной вкладке живёт.
 
y
Может вы об окне расширения? Оно в отдельной вкладке живёт.
Нет. У меня проблема до вызова окна расширения. Я скрин прикрепил. Я именно в этом окне зенопостером не могу нажать на MetaMask. Сейчас я на этом шаге ожидаю действия пользователя. После программа работает нормально. Но очень неудобно сидеть и каждый поток вручную тыкать. Раз на странице я код не нахожу, может через post get запросы это можно реализовать. Но тут тоже не смог пока разобраться. В частности, в пост запросе есть параметр sid, но его я тоже нигде не нашёл((. Снимок экрана 2024-02-27 002022.png
 
y

Нет. У меня проблема до вызова окна расширения. Я скрин прикрепил. Я именно в этом окне зенопостером не могу нажать на MetaMask. Сейчас я на этом шаге ожидаю действия пользователя. После программа работает нормально. Но очень неудобно сидеть и каждый поток вручную тыкать. Раз на странице я код не нахожу, может через post get запросы это можно реализовать. Но тут тоже не смог пока разобраться. В частности, в пост запросе есть параметр sid, но его я тоже нигде не нашёл((. Посмотреть вложение 118439
Попробуйте относительно координат какого то элемента, который в 'Дереве' отображается, сделать клик на приращенных координатах кубиком 'Эмуляция мыши'.
 
Метамаск находится за shadow-dom.
Только через js или поиск по картинке.
Что-то вроде -
JavaScript:
Развернуть Свернуть Копировать
var mtm = document.getElementsByTagName('onboard-v2')[0]
                                              .shadowRoot
                                              .querySelector('div[class*="name"]'); 
                                    mtm.click();
 
  • Спасибо
Реакции: Buddha и AsuprA
А что подставлять вместо onboard-v2 и div[class*="name"] где-то можно найти? Вместо div[class*="name"] можно попробовать div[innertext*="MetaMask"]? Я правильно думаю или эти параметры надо где-то парсить?
 
Этот пример рабочего кода, который из вашей страницы сделан (сначала только нужно нажать чекбокс).
Можете для удобства в хроме зайти на эту страницу и ПКМ -> показать код.
В консоли тестируете js, затем переносите в зену.
 
Подскажите, как нажать на Connect Wallet, а потом Matamask с помощью JavaScript. URL - https://referrals.linea.build/
Перепробовал разные варианты ничего не подошло.
 
нажать на Connect Wallet
JavaScript:
Развернуть Свернуть Копировать
document.querySelector("w3m-button").shadowRoot.querySelector("w3m-connect-button").shadowRoot.querySelector("wui-connect-button").click()

JavaScript:
Развернуть Свернуть Копировать
document.querySelector("w3m-modal").shadowRoot.querySelector("w3m-router").shadowRoot.querySelector("w3m-connect-view").shadowRoot.querySelector('[name="MetaMask"]').click()
 
  • Спасибо
Реакции: Buddha
JavaScript:
Развернуть Свернуть Копировать
document.querySelector("w3m-button").shadowRoot.querySelector("w3m-connect-button").shadowRoot.querySelector("wui-connect-button").click()


JavaScript:
Развернуть Свернуть Копировать
document.querySelector("w3m-modal").shadowRoot.querySelector("w3m-router").shadowRoot.querySelector("w3m-connect-view").shadowRoot.querySelector('[name="MetaMask"]').click()

Добрый день!
Подскажите пожалуйста, как сделать клик по элементу с условием содержания текста?

Вот пример кода:
Кусок кода с сайта:
Развернуть Свернуть Копировать
<button class="wallet-button-styling svelte-1vlog3j"><div class="wallet-button-container-inner svelte-1vlog3j"><div class="relative svelte-i129jl border-custom background-transparent" style="; padding: 8.333333333333334px; width: 48px; height: 48px; border-radius: 12px; color: black;"><div class="icon flex justify-center items-center svelte-i129jl" style=""><!--?xml version="1.0" encoding="utf-8"?-->

<div class="wallet-button-container-inner svelte-1vlog3j">

<div class="name svelte-1vlog3j">MetaMask</div> </div></button>

Вот код JavaScript:
JavaScript:
Развернуть Свернуть Копировать
document.querySelector('onboard-v2').shadowRoot.querySelector('button div:contains["MetaMask"]').click()

Но почему-то не кликает. Возможно я не правильно собрал.

Буду благодарен, если поправите.
 
Метамаск находится за shadow-dom.
Только через js или поиск по картинке.
Что-то вроде -
JavaScript:
Развернуть Свернуть Копировать
var mtm = document.getElementsByTagName('onboard-v2')[0]
                                              .shadowRoot
                                              .querySelector('div[class*="name"]');
                                    mtm.click();

Добрый день!
Подскажите пожалуйста, как сделать клик по элементу с условием содержания текста

Вот пример кода с сайта:
Кусок кода с сайта:
Развернуть Свернуть Копировать
<button class="wallet-button-styling svelte-1vlog3j"><div class="wallet-button-container-inner svelte-1vlog3j"><div class="relative svelte-i129jl border-custom background-transparent" style="; padding: 8.333333333333334px; width: 48px; height: 48px; border-radius: 12px; color: black;"><div class="icon flex justify-center items-center svelte-i129jl" style=""><!--?xml version="1.0" encoding="utf-8"?-->

<div class="wallet-button-container-inner svelte-1vlog3j">

<div class="name svelte-1vlog3j">MetaMask</div> </div></button>

Вот код JavaScript:
JavaScript:
Развернуть Свернуть Копировать
document.querySelector('onboard-v2').shadowRoot.querySelector('button div:contains["MetaMask"]').click()

Но почему-то не кликает. Возможно я не правильно собрал.

Буду благодарен, если поправите.
 
Нужен сайт
 
document.querySelector('w3m-modal').shadowRoot.querySelector('w3m-router').shadowRoot.querySelector('w3m-connect-view').shadowRoot.querySelector('wui-flex').querySelector('wui-list-wallet[name="MetaMask"]').click()
 
вроде реф ссылки запрещены. или я что то путаю/r такому сайту не вздумайте свои кошельки крепить. Драйнеры походу висят. Я бы вообще снес данную тему домены зарегистрированы в отдом и том же месяце
ambient.finance/swap/chain=0x1&tokenA=0x0000000000000000000000000000000000000000&tokenB=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

Токена как такогого нету. Даже тут лоханулись криво сделали
 
Последнее редактирование:
вроде реф ссылки запрещены. или я что то путаю/r такому сайту не вздумайте свои кошельки крепить. Драйнеры походу висят. Я бы вообще снес данную тему домены зарегистрированы в отдом и том же месяце
ambient.finance/swap/chain=0x1&tokenA=0x0000000000000000000000000000000000000000&tokenB=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

Токена как такогого нету. Даже тут лоханулись криво сделали

Не совсем понимаю о каких ещё реф ссылках речь? Как скопировал с адресной строки, так и вставил.

Если вы после домена видите слово roistat, то рекомендую почитать, что это такое.
 
А не могли бы ещё раз помочь? Теперь та же история с сайтом https://poh.linea.build/
Снова пытаюсь нажать кнопку МетаМаск:
Как я понял, она за несколькими shadowRoot, пробовал разные варианты, но все выдают ошибку. Как на этом сайте нажать МетаМаск??

JavaScript:
Развернуть Свернуть Копировать
var mtm = document.getElementsByTagName('w3m-modal')[0]
                                                .shadowRoot
                                                .getElementsByTagName('w3m-router')[0]
                                                    .shadowRoot
                                                    .getElementsByTagName('w3m-connect-view')[0]
                                                        .shadowRoot
                                                        .querySelector('wui-list-wallet[name*=MetaMask]');
 
MetaMask - в двойные кавычки
 

Вложения

  • Снимок экрана 2024-05-23 130806.jpg
    Снимок экрана 2024-05-23 130806.jpg
    174,7 KB · Просмотры: 126
  • Снимок экрана 2024-05-23 130437.jpg
    Снимок экрана 2024-05-23 130437.jpg
    232,3 KB · Просмотры: 116
  • Снимок экрана 2024-05-23 130546.jpg
    Снимок экрана 2024-05-23 130546.jpg
    452,1 KB · Просмотры: 120
document.querySelector('w3m-modal').shadowRoot.querySelector('wui-card > w3m-router').shadowRoot.querySelector('w3m-connect-view').shadowRoot.querySelector('wui-flex').querySelector('wui-list-wallet[name="MetaMask"]').click()
 
  • Спасибо
Реакции: AsuprA

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)