Web3 automation testing tool.
Project description
Overview
Since web3 applications usually need to operate wallets (such as metamask), this tool can automate the operation of the metamask part to facilitate developers to test the application.
Installation
auto-metamask can be installed using pip:
$ pip install auto-metamask
Usage Examples
import os
import sys
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from auto_metamask import *
if __name__ == '__main__':
metamask_path = downloadMetamask(
'https://github.com/MetaMask/metamask-extension/releases/download/v10.11.2/metamask-chrome-10.11.2.zip')
driver = setupWebdriver(metamask_path)
# Test account, please do not use for production environment
setupMetamask(
'whip squirrel shine cabin access spell arrow review spread code fire marine', 'testtest')
addNetwork('BSC', 'https://bsc-dataseed1.binance.org', '56', 'BNB')
changeNetwork('BSC')
# Test account, please do not use for production environment
importPK("bb334564f93fc3a40a3b6a89e0560101bb86e5b75c773381f1e6d2f37fc5c5ba")
driver.switch_to.new_window()
driver.get('https://metamask.github.io/test-dapp/')
wait = WebDriverWait(driver, 20, 1)
wait.until(EC.element_to_be_clickable(
(By.XPATH, '//button[text()="Connect"]'))).click()
connectWallet()
time.sleep(6)
driver.quit()
API Reference
auto_metamask.core
downloadMetamask
def downloadMetamask(url)
Download the metamask extension
Arguments:
url
(String
): Metamask extension download address (.zip)
Returns:
String
: Extension file path
setupWebdriver
def setupWebdriver(metamask_path)
Initialize chrome browser and install metamask extension
Arguments:
metamask_path
(String
): Extension file path
Returns:
WebDriver
: Selenium Chrome WebDriver
setupMetamask
@switchPage
def setupMetamask(recovery_phrase, password)
Autocomplete metamask welcome page
Arguments:
recovery_phrase
(String
): Recovery phrasepassword
(String
): Wallet password (minimum 8 characters)
addNetwork
@switchPage
def addNetwork(network_name, rpc_url, chain_id, currency_symbol)
Add new network
Arguments:
network_name
(String
): Network namerpc_url
(String
): RPC URLchain_id
(String
): Chain IDcurrency_symbol
(String
): Currency symbol
changeNetwork
@switchPage
def changeNetwork(network_name)
Change network
Arguments:
network_name
(String
): Network name
importPK
@switchPage
def importPK(priv_key)
Import private key
Arguments:
priv_key
(String
): private key
connectWallet
@switchPage
def connectWallet()
Connect wallet
signWallet
@switchPage
def signWallet()
Sign wallet
confirmTransaction
@switchPage
def confirmTransaction()
Confirm transaction
Credits
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
auto-metamask-0.1.2.tar.gz
(7.2 kB
view hashes)