【uiautomation+selenium】学习自动化(2022.11.26更新)

【uiautomation+selenium】学习自动化(大学生们看过来)

        争对之前的自动化,目前主要改了一个控件的查找,

点击青春浙江后,直接去查找大学习按钮(与以往不同之处),修改这里即可

# -*- coding: utf-8-*-
import time
import subprocess
import uiautomation as auto
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import winreg

'''1'''
# 可执行文件的具体地址信息
subprocess.Popen('E:\微信\WeChat\WeChat.exe')

# 判断微信是否已经登录
wechat_login = auto.PaneControl(Name='微信')
enter_wechat_btn = wechat_login.ButtonControl(Name='进入微信')
if enter_wechat_btn.Exists():
    enter_wechat_btn.Click()

# 进入微信后
wechatWindow = auto.WindowControl(searchDepth=1, className='WeChatMainWndForPC', Name='微信')
# 点击聊天
button = wechatWindow.ButtonControl(Name='聊天')
button.Click()
# 搜索
search = wechatWindow.EditControl(Name='搜索')
search.Click()

# 通过回车
search.GetParentControl().GetChildren()[1].SendKeys('青春浙江')
time.sleep(2)
wechatWindow.SendKeys('{Enter}')
# todo 多出来的
UIA_Window = auto.WindowControl(ClassName="ChatWnd")
daxuexi = UIA_Window.ButtonControl(Name="大学习")
daxuexi.Click()
###

# session = wechatWindow.PaneControl(Name='会话列表')
# more = session.ButtonControl(Name='更多')
# more.Click()
#
# send_message = auto.MenuItemControl(Name='发消息')
# send_message.Click()

# 大概需要六秒
# dxx_btn = session.ButtonControl(Name='大学习')
# dxx_btn.Click()

'''2'''
# ---------------------------------------------
wechatWindow_2 = auto.WindowControl(searchDepth=1, className='CefWebViewWnd', Name='微信')

# 这个判断会花费较长时间
# 每隔一段时间后会出现授权信息
agree_btn = wechatWindow_2.ButtonControl(Name="同意")
if agree_btn.Exists():
    agree_btn.Click()

max = wechatWindow_2.ButtonControl(Name='向下还原')
# 判断页面是否最大化
if max.Exists():
    max.Click()

study_icon = wechatWindow_2.ImageControl(Name='立即学习')
study_icon.Click()

# 到达立即参与界面
participate_in_btn = wechatWindow_2.DocumentControl(Name="青春浙江“青年大学习”").GetChildren()[0].GetChildren()[4].GetChildren()[0]
participate_in_btn.Click()
# # 到达去学习界面
study_page = wechatWindow_2.DocumentControl(Name="青春浙江“青年大学习”").GetChildren()[0].GetChildren()[3].GetChildren()[0]
time.sleep(5)
study_btn = study_page.GetChildren()[9]
study_btn.Click()

max_page = wechatWindow_2.ButtonControl(Name='最大化')
max_page.Click()
time.sleep(2)
edit = wechatWindow_2.EditControl(searchDepth=5).GetValuePattern().Value
print(edit)
# 向下还原
restore_page = wechatWindow_2.ButtonControl(Name='向下还原')
restore_page.Click()

# 关闭具体页面
wechatWindow_2.ButtonControl(Name='关闭').Click()
# 关闭微信界面
wechatWindow.ButtonControl(Name='关闭').Click()

'''3'''
def desktop_path():
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
    desktop = winreg.QueryValueEx(key, "Desktop")[0]
    # print(desktop)
    return desktop

driver = webdriver.Chrome()
driver.get(edit)
# 窗口最大化
driver.maximize_window()
time.sleep(1)
# 进入iframe
driver.switch_to.frame(0)

time.sleep(1)
# 根据文本
Select(driver.find_element(by=By.CSS_SELECTOR, value='#province')).select_by_visible_text('浙江省')

# time.sleep(1)
Select(driver.find_element(by=By.CSS_SELECTOR, value='#city')).select_by_visible_text('绍兴市')
# time.sleep(1)
# 省市地址确定
# todo
# driver.find_element(by=By.XPATH, value='/html/body/div[2]/div[8]/div[3]').click()
driver.find_element(by=By.XPATH, value='/html/body/div[2]/div[9]/div[3]').click()
# 开始学习
driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section0.topindex.ani > div.start_btn.on').click()
# 倍速
time.sleep(2)
driver.execute_script("document.querySelector('video').playbackRate = 15.0;")

while True:
    try:
        # 是否出现题目
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1')
        time.sleep(0.1)
        # 选A
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.w1.option').click()
        time.sleep(0.1)
        # 确认按钮
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.button').click()
        # 继续学习
        time.sleep(2.5)
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.continue').click()
        # 15倍速
        driver.execute_script("document.querySelector('video').playbackRate = 15.0;")
    except:
        pass
    try:
        if driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section3.topindex2'):
            time.sleep(1)
            a = time.time()
            # driver.get_screenshot_as_file(r'C:\Users\knighthood\OneDrive\桌面\{}.png'.format(a))
            driver.get_screenshot_as_file(r'{}\{}.png'.format(desktop_path(), a))
            break
    except:
        pass
driver.close()




  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

knighthood2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值