Python自动化

最近帮忙写一个python自动化发短信的程序,从来没有接触多,就在网上查询了一些资料,记录一下关于python自动化的一些东西。

白夜黑羽

这个大佬的教学网站有想要的

自动化网页Selenium

这个比较简单

自动化手机程序

使用python+appium。appiu自带APP控件识别功能,很方便。

from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey

desired_caps = {
  'platformName': 'Android', # 被测手机是安卓
  'platformVersion': '8', # 手机安卓版本
  'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
  'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
  'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称
  'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
  'resetKeyboard': True, # 执行完程序恢复原来输入法
  'noReset': True,       # 不要重置App
  'newCommandTimeout': 6000,
  'automationName' : 'UiAutomator2'
  # 'app': r'd:\apk\bili.apk',
}

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 设置缺省等待时间
driver.implicitly_wait(5)

# 如果有`青少年保护`界面,点击`我知道了`
iknow = driver.find_elements_by_id("text3")
if iknow:
    iknow.click()

# 根据id定位搜索位置框,点击
driver.find_element_by_id("expand_search").click()

# 根据id定位搜索输入框,点击
sbox = driver.find_element_by_id('search_src_text')
sbox.send_keys('白月黑羽')
# 输入回车键,确定搜索
driver.press_keycode(AndroidKey.ENTER)

# 选择(定位)所有视频标题
eles = driver.find_elements_by_id("title")

for ele in eles:
    # 打印标题
    print(ele.text)

input('**** Press to quit..')
driver.quit()
自动化桌面程序

感觉自动化桌面程序的好少啊,inspect.exe 这个是识别软件,可以识别桌面程序控件的名字。

先找到指定窗口 打开并置顶 获取他的左上角和右下角 这样可以算出长宽 根据相对位置模拟点击,
主要是因为我有几个控件不是文本框 没法直接set_text,才只有通过点击后聚焦到对话框,复制粘贴板的内容

name = "微信"
hwnd = win32gui.FindWindow(None, name)
if hwnd:
    print("成功找到窗口...")
else:
    print("没有找到窗口,请重试...")
    exit()
win32gui.SetForegroundWindow(hwnd)

left, top, right, bottom = win32gui.GetWindowRect(hwnd)
def dianji(x, y):
    win32api.SetCursorPos((x, y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)

模拟粘贴复制

	pyperclip.copy(phone)
    time.sleep(1)
    k = PyKeyboard()
    k.press_key(k.control_key)
    k.tap_key('a')
    k.release_key(k.control_key)
    k.tap_key(k.delete_key)
    k.press_key(k.control_key)
    k.tap_key('v')
    k.release_key(k.control_key)
	# 方式二
    pyperclip.copy(phone)
    time.sleep(1)
    pyautogui.keyDown('ctrl')
    pyautogui.press('a')
    pyautogui.keyUp('ctrl')
    pyautogui.press('delete')
    pyautogui.keyDown('ctrl')
    pyautogui.press('v')
    pyautogui.keyUp('ctrl')

其实知道控件名字 使用这种方式获取控件复制会好很多,点击有时候会偏移啊。

        # app = Application(backend="uia").connect(title_re="发送短信")
        # dlg_spec = app.window(title='发送短信')
        # dlg_spec = app[r'发送短信']
        # edit = dlg_spec['Edit']  # 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值