这是一个创建于 1514 天前的主题,其中的信息可能已经有所发展或是发生改变。
    
    
    
        
        import subprocess
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
import os
import xlrd
print("""
  _   _ ______ _______            _        ______                        
 | \ | |  ____|__   __|/\        | |      |  ____|                       
 |  \| | |__     | |  /  \  _   _| |_ ___ | |__ _ __ __ _ _ __ ___   ___ 
 | . ` |  __|    | | / /\ \| | | | __/ _ \|  __| '__/ _` | '_ ` _ \ / _ \
 | |\  | |       | |/ ____ \ |_| | || (_) | |  | | | (_| | | | | | |  __/
 |_| \_|_|       |_/_/    \_\__,_|\__\___/|_|  |_|  \__,_|_| |_| |_|\___|
""")
#表格文档操作,配置读取
workfile = xlrd.open_workbook('./操作配置文件.xls')
sheet = workfile.sheet_by_name('work')
nrows = sheet.nrows
#定义 exe 路径
MetacurrentPath = os.path.abspath('metamask.exe')
class NFTAutoFrame():
    def __init__(self,dr):
        self.dr = dr
    # 简易型运行接口
    def WorkInsert(self):
        #循环判断操作方式
        for i in range(1, nrows):
            if int(sheet.cell_value(i, 0)) == 1:
                print('开始模拟点击')
                element = sheet.cell_value(i,1)
                print(element)
                findelement = self.dr.find_element_by_xpath(element)
                ActionChains(self.dr).double_click(findelement).perform()
                # self.dr.find_element_by_xpath(element).click()
                print(self.dr.title())
                metaelement = '//*[@id="app-content"]/div/div[3]/div/div[3]/div[3]/footer/button[2]'
                metaTest = '确认'
                time.sleep(2)
                # self.dr.find_element_by_xpath(metaelement).click()
                # self.dr.find_element_by_link_text()
                a = self.dr.switch_to_alert()
                a.accept()
                # except:
                #     print('点击元素出错,请检查元素是否存在,如遇加载问题可以合理设置强制等待时间')
            elif int(sheet.cell_value(i, 0)) == 2:
                print('开始模拟输入')
                try:
                    self.dr.find_element_by_xpath(sheet.cell_value(i, 1)).send_keys(sheet.cell_value(i, 2))
                except:
                    print('输入文本信息出错,请检查元素是否存在')
            elif int(sheet.cell_value(i, 0)) == 3:
                print('开始模拟手动操作小狐狸')
                try:
                    os.system(MetacurrentPath)
                except:
                    print('模拟小狐狸操作失败')
            elif int(sheet.cell_value(i, 0)) == 4:
                print('进行刷新')
                try:
                    self.dr.refresh()
                except:
                    self.dr.get(self.dr.current_url)
            elif int(sheet.cell_value(i, 0)) == 5:
                print('进行强制停止',sheet.cell_value(i, 2),'秒')
                time.sleep(int(sheet.cell_value(i, 2)))
            else:
                print('请输入正确的进行方式')
    def CloseDriver(self):
        input('运行完毕,请按任意键推出程序')
        try:
            self.dr.close()
            self.dr.quit()
            print('程序已经关闭')
        except:
            print('程序已经关闭')
if __name__ == '__main__':
    AutoCount = input('请输入希望循环的次数:')
    input('请在打开浏览器后,最大化浏览器,配置好您的小狐狸,并打开需要测试的地址,按任意键继续')
    try:
        chrome_options = Options()
        chrome_options.add_argument(r'--user-data-dir=D:\seleniumAutoConfig')
        dr = webdriver.Chrome(options=chrome_options)
        input('请配置好您的浏览器小狐狸以及网址,配置好请按任意键继续')
        print('系统将在 5 秒后运行自动化程序,请保持调试浏览器在最前面,程序运行时请不要操作鼠标键盘,可能导致程序运行出错')
        number = 5
        for i in range(5):
            secon = number - i
            print('\r 程序运行倒计时……', secon, end='')
            time.sleep(1)
        for i in range(int(AutoCount)):
            NFTAutoFrame(dr=dr).WorkInsert()
        NFTAutoFrame(dr=dr).CloseDriver()
    except:
        print('浏览器打开错误,请确认是否存在占用配置文件夹的已打开浏览器')