Selenium发表图片说说

from selenium 
import webdriver
import time
import win32gui
import win32con
driver = webdriver.Chrome(r'H:\python\chromedrive\chromedriver.exe')
url = 'http://user.qzone.qq.com/715157026/infocenter?ptsig=YAykvv1IN0eLgVhwb9vnl2AyS*9pwf23WfDbffrZ20k_'
driver.get(url)
try:
    driver.find_elements_by_id('login')
    a = True
except:    a = False
if a == True:  #模拟登陆
    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(QQ)
    driver.find_element_by_id('p').clear() 
    driver.find_element_by_id('p').send_keys(keys)      
    driver.find_element_by_id('login_button').click()
time.sleep(20)   
driver.find_element_by_id("qz_poster_editor_v4_container").click() #很奇怪,好像是发说说的方式变了,直接点击发图片没有效果,必须要先点这个才行
time.sleep(5)
ele = driver.find_element_by_class_name("pic")
time.sleep(3)
ele.click()
time.sleep(10)
driver.find_element_by_id('qz_app_imageReader_1').click()
time.sleep(5)
dialog = win32gui.FindWindow(0, u'打开')  # 对话框
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None)  #输入相对地址
button = win32gui.FindWindowEx(dialog, 0, 'Button', None) #确定按钮
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, r"H:\自己瞎搞的[root,单片]\奇怪的图片\123.png")
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)
time.sleep(35)  #等待图片上传到图床,时间较长
driver.find_element_by_xpath("//*[@id='QM_Mood_Poster_Inner']/div/div[4]/div[4]/a[2]").click() #点击发表,因为class里面有空格,find_class无法定位,所以用Xpath,好像用css也可以

一些注释都在代码里面了,有些东西单独拿出来说。一个是说说上传图片好像变了


Selenium发表图片说说_第1张图片

直接点这个并不能直接把隐藏的东西点出来了,不知道是不是我的浏览器抽风了,必须要点一下这个才可以。


Selenium发表图片说说_第2张图片

后面一部分是用Python操作Windows上传的代码。
sleep可以解决很多问题。。很多问题都是因为没有加载出来,才引发的问题。

你可能感兴趣的:(Selenium发表图片说说)