selinum 自动登录QQ空间发表说说

# -*- coding: utf-8 -*-
"""
====================================
@File Name :demo1.py
@Time : 2023/2/8 14:46
@Program IDE :PyCharm
@Create by Author : 一一吴俊峰
@Motto:"The trick, William Potter, is not minding that it hurts."
====================================
"""

# 导入selenium中的webdriver工具
from selenium import webdriver
# 相当于鼠标键盘操作导入的模块
import time, win32api, win32con
# 导入一个操作键盘和鼠标的包
from pynput.keyboard import Controller, Key
from lxml import etree


def loginQQ(usr, pwd):
    driver = webdriver.Chrome(executable_path=r'C:\Program Files\Google\Chrome\Application\chromedriver.exe')
    driver.get('http://qzone.qq.com')
    # 切到登陆模块
    driver.switch_to.frame('login_frame')
    driver.find_element_by_id('switcher_plogin').click()
    driver.find_element_by_id('u').clear()
    driver.find_element_by_id('u').send_keys(usr)
    driver.find_element_by_id('p').clear()
    driver.find_element_by_id('p').send_keys(pwd)
    driver.find_element_by_id('login_button').click()
    # 浏览器跳转
    time.sleep(3)
    driver.switch_to.default_content()
    page = etree.HTML(driver.page_source)
    nick = page.xpath('//*[@id="headContainer"]/div[2]/div/span[1]')
    if len(nick) > 0:
        print('[INFO]: %s Login Successfully...' % usr)
    else:
        print('[Error]: Fail to login %s in <cookie.py - _GetNewCookie func>...' % usr)
        driver.quit()
    return driver


def publish(driver,message = "自动化测试,请勿关注"):
    driver.maximize_window()
    print("登录成功")
    # 定位'说说'输入框,加载全部网页,我需要2s,这个看个人硬件.
    time.sleep(2)
    driver.find_element_by_id("$1_substitutor_content").click()
    print("定位输入框成功")
    # 输入说说内容
    #time.sleep(5)
    # #Controller是pynput封装的方法
    keyboard = Controller()
    # 记录时间,下面要用(可省略)
    now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    # 输入的内容
    keyboard.type(message + now)
    # 模拟人为点击
    # ctrl键位码是17
    win32api.keybd_event(17, 0, 0, 0)
    # enter键位码是13
    win32api.keybd_event(13, 0, 0, 0)
    # 按下Ctrl+Enter发送信息
    win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)
    win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
    print("发送说说成功")

if __name__ == "__main__":
    # message = input("请输入要发表的说说:")
    # if len(message) > 1:
    #     driver = loginQQ("1028540310","XXX")
    #     time.sleep(5)
    #     publish(driver,message)

    driver = loginQQ("1028540310", "XXX")
    time.sleep(5)
    publish(driver)

  

posted @ 2023-02-08 16:34  龙卷风之殇  阅读(14)  评论(0)    收藏  举报