首先还是要先完成上篇文章的前置内容
具体可以参考上一篇
STEP.1 导出 Metamask
STEP.2 连接 Metamask
STEP.3 OPENSEA端部署
接着我們会沿用connector去扩充
文章里的编码可能会有换行导致运行失败
扩充之后目录会多出
opensea_bridge_metamask.py
opensea_list_helper.py
两个文件
其中几处 collection/sunset-cloudss是我的collection名称,需要换成自己的
opensea__list_helper.py :
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import metamask_connector
import opensea_bridge_metamask
metamask_connector.meta_mask_navigate()
opensea_bridge_metamask.connect()
time.sleep(5)
driver = metamask_connector.get_driver()
time.sleep(10)
print(driver.window_handles)
driver.switch_to.window(driver.window_handles[2])
time.sleep(1)
driver.execute_script('window.open("https://opensea.io/collection/sunset-cloudss","_self")')
print(driver.title)
for count in range(1, 41):
print('=======================')
print(str(count).zfill(2))
target_id = str(count).zfill(2)
target_script = 'window.open("https://opensea.io/collection/sunset-cloudss?search[query]=' +
target_id + '"' + ',"_self")'
driver.execute_script(target_script)
time.sleep(3)
driver.find_elements(By.XPATH, "//article/a[contains(@href, 'assets/')]")[0].click()
time.sleep(3)
print(driver.current_url)
target_script = 'window.open("' +
driver.current_url + '/sell"' + ',"_self")'
print(target_script)
driver.execute_script(target_script)
driver.find_element(By.XPATH, "//input[@name='price']").send_keys(0.01)
time.sleep(3.3)
driver.find_element(
By.XPATH, "//button[text()='Complete listing']").click()
# 页面上的 ”签名“
time.sleep(10)
driver.find_element(By.XPATH, "//button[text()='Sign']").click()
'''
# Unlock
time.sleep(3)
driver.find_element(By.XPATH, "//button[text()='Unlock']").click()
#driver.find_element(By.XPATH, "//*[@id='Body react-aria-8']/div/div/button").click()
'''
time.sleep(10)
driver.switch_to.window(driver.window_handles[3])
print(driver.title)
# 点击钱包里的向下滑动箭头
jiantou = WebDriverWait(driver, 15).until(
EC.visibility_of_element_located((By.XPATH, '/html/body/div[1]/div/div[2]/div/div[3]/div[1]'))
)
driver.execute_script("arguments[0].click();", jiantou)
# 钱包里的”签名“
time.sleep(5)
# //*[@app-content"]/div/div[2]/div/div[4]/button[2]
# /html/body/div[1]/div/div[2]/div/div[4]/button[2]
# driver.find_element(By.XPATH, "//button[text()='签名']").click()
# 解决: Element is not clickable at point,Other element would receive the click
# 用执行js的方式来提交,果然可以避免这个问题
button = WebDriverWait(driver, 15).until(
EC.visibility_of_element_located((By.XPATH, '/html/body/div[1]/div/div[2]/div/div[4]/button[2]'))
)
driver.execute_script("arguments[0].click();", button)
time.sleep(5)
driver.switch_to.window(driver.window_handles[2])
print(driver.title)
print('=======================')
opensea_bridge_metamask.py :
import time
from selenium.webdriver.common.by import By
import metamask_connector
def connect() :
driver = metamask_connector.get_driver()
driver.execute_script('window.open("https://opensea.io/login","_blank")')
time.sleep(10)
print(driver.window_handles)
driver.switch_to.window(driver.window_handles[2])
print(driver.title)
time.sleep(10)
driver.find_element(By.CLASS_NAME, "Navbar--brand").click()
time.sleep(1)
driver.back()
time.sleep(1)
driver.find_element(By.XPATH, "//span [text()='MetaMask']").click()
time.sleep(1)
print(driver.window_handles)
driver.switch_to.window(driver.window_handles[3])
time.sleep(3)
driver.find_element(By.CLASS_NAME, "btn-primary").click()
time.sleep(3)
driver.find_element(By.CLASS_NAME, "btn-primary").click()
运行opensea__list_helper.py后就开始自动上架了!



