在某站上看的白月黑羽的视频简单学习了一下,然后随便写了一个执行自动化脚本的工具(这功能有点鸡肋,写着玩的),记录一下代码。
import traceback
from PySide2 import QtCore
from PySide2.QtWidgets import QApplication, QAbstractItemView
from PySide2.QtUiTools import QUiLoader
from PySide2.QtGui import QIcon
from selenium import webdriver
import time
import warnings
from selenium.webdriver.chrome.options import Options
from threading import Thread
class Stats:
def __init__(self):
self.ui = QUiLoader().load('main.ui')
self.ui.setWindowIcon(QIcon('icon.png'))
self.ui.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowCloseButtonHint)
self.ui.setFixedSize(self.ui.width(), self.ui.height())
self.ui.listWidget_weixuan.addItems(
[self.查询需求.__name__, self.新建项目.__name__, self.修改文档.__name__, self.等待时间.__name__])
self.ui.listWidget_weixuan.setSelectionMode(QAbstractItemView.MultiSelection)
self.ui.listWidget_yixuan.setSelectionMode(QAbstractItemView.MultiSelection)
self.ui.pushButton_xuanze.clicked.connect(self.button_xuanze)
self.ui.pushButton_quxiao.clicked.connect(self.button_quxiao)
self.ui.pushButton_zhixing.clicked.connect(self.button_zhixing)
def button_xuanze(self):
a = self.ui.listWidget_weixuan.selectedItems()
list1 = []
for l in a:
list1.append(l.text())
self.ui.listWidget_yixuan.addItems(list1)
a = self.ui.listWidget_weixuan.selectedIndexes()
list = []
for i in a:
list.append(i.row())
for j in range(len(list)):
list.sort()
self.ui.listWidget_weixuan.takeItem(list[j] - j)
def button_quxiao(self):
a = self.ui.listWidget_yixuan.selectedItems()
list1 = []
for l in a:
list1.append(l.text())
self.ui.listWidget_weixuan.addItems(list1)
a = self.ui.listWidget_yixuan.selectedIndexes()
list = []
for i in a:
list.append(i.row())
for j in range(len(list)):
list.sort()
self.ui.listWidget_yixuan.takeItem(list[j] - j)
def button_zhixing(self):
thread = Thread(target=self.test)
thread.start()
def test(self):
self.ui.progressBar.setRange(0,0)
count = self.ui.listWidget_yixuan.count()
for i in range(count):
a = self.ui.listWidget_yixuan.item(i).text()
code ='stats.' + a + '()'
exec(code)
self.ui.progressBar.setRange(100, 100)
# self.ui.progressBar.reset()
def 查询需求(self):
try:
time.sleep(1)
self.ui.textBrowser_jieguo.append('******************查询需求******************')
time.sleep(1)
warnings.simplefilter('ignore', ResourceWarning)
# chrome_options = Options()
# chrome_options.add_argument('--headless')
# self.driver = webdriver.Chrome(options=chrome_options)
self.driver=webdriver.Chrome()
time.sleep(1)
self.ui.textBrowser_jieguo.append('浏览器打开正常')
time.sleep(1)
self.driver.maximize_window()
self.driver.implicitly_wait(15)
time.sleep(1)
self.ui.textBrowser_jieguo.append('窗口最大化正常')
time.sleep(1)
self.driver.get('http:******点赞并回复可见********')
time.sleep(1)
self.ui.textBrowser_jieguo.append('登陆禅道')
time.sleep(1)
self.driver.find_element_by_xpath('//*[@id="account"]').send_keys('********')
time.sleep(1)
self.ui.textBrowser_jieguo.append('输入用户名')
time.sleep(1)
self.driver.find_element_by_xpath('//*[@id="loginPanel"]/div/div[2]/form/table/tbody/tr[2]/td/input').send_keys(
'*********')
time.sleep(1)
self.ui.textBrowser_jieguo.append('输入密码')
time.sleep(1)
self.driver.quit()
time.sleep(1)
self.ui.textBrowser_jieguo.append('关闭浏览器')
time.sleep(1)
self.ui.textBrowser_jieguo.append('******************执行结束******************')
time.sleep(1)
except Exception as e:
self.driver.quit()
self.ui.textBrowser_jieguo.append(traceback.format_exc())
time.sleep(1)
self.ui.textBrowser_jieguo.append('******************执行失败******************')
time.sleep(1)
def 新建项目(self):
try:
time.sleep(1)
self.ui.textBrowser_jieguo.append('******************新建项目******************')
time.sleep(1)
warnings.simplefilter('ignore', ResourceWarning)
# chrome_options = Options()
# chrome_options.add_argument('--headless')
# self.driver = webdriver.Chrome(options=chrome_options)
self.driver = webdriver.Chrome()
time.sleep(1)
self.ui.textBrowser_jieguo.append('浏览器打开正常')
time.sleep(1)
self.driver.maximize_window()
self.driver.implicitly_wait(15)
time.sleep(1)
self.ui.textBrowser_jieguo.append('窗口最大化正常')
time.sleep(1)
self.driver.get('http:*******点赞并回复可见**********')
time.sleep(1)
self.ui.textBrowser_jieguo.append('登陆禅道')
time.sleep(1)
self.driver.find_element_by_xpath('//*[@id="accountqqqqqqqqqqqqq"]').send_keys('******')
time.sleep(1)
self.ui.textBrowser_jieguo.append('输入用户名')
time.sleep(1)
self.driver.find_element_by_xpath(
'//*[@id="loginPanel"]/div/div[2]/form/table/tbody/tr[2]/td/input').send_keys(
'*******')
time.sleep(1)
self.ui.textBrowser_jieguo.append('输入密码')
time.sleep(1)
self.driver.quit()
time.sleep(1)
self.ui.textBrowser_jieguo.append('关闭浏览器')
time.sleep(1)
self.ui.textBrowser_jieguo.append('******************执行结束******************')
time.sleep(1)
except Exception as e:
self.driver.quit()
self.ui.textBrowser_jieguo.append(traceback.format_exc())
time.sleep(1)
self.ui.textBrowser_jieguo.append('******************执行失败******************')
time.sleep(1)
def 修改文档(self):
pass
def 等待时间(self):
pass
app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()