如果没有 chromedriver 请点击 下载传送门
import time
import requests
from selenium import webdriver
##因为用到模拟浏览器,需要调用浏览程序
chromedriver = r"E:\python\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(chromedriver)
driver.implicitly_wait(10)
driver.get("https://qzone.qq.com/")
#等待5秒后,判断页面是否需要登录,通过查找页面是否有相应的DIV的id来判断
try:
driver.find_element_by_id('login_div')
a = True
except:
a = False
if a == True:
# 如果页面存在登录的DIV,则模拟登录(遇到滑动的时候需要手动滑动,所以我在下面设置10秒)
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('输入账号')
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys('输入密码')
driver.find_element_by_id('login_button').click()
time.sleep(10)
##找到发说说按钮,进行点击
driver.find_element_by_id("QM_Profile_Mood_A").click()
time.sleep(2)
try:
driver.switch_to.frame('app_canvas_frame') # 进入iFrame
time.sleep(3)
try:
# 因为第一个找到的class无法点击,所以我们找到可以点击然后光标进入编辑框的,然后模拟点击
driver.find_element_by_xpath('//*[@id="$1_substitutor_content"]').click()
time.sleep(0.5)
driver.find_element_by_xpath('//*[@id="$1_content_content"]').send_keys("自动发说说功能")
print('文字输入成功')
time.sleep(0.5)
##点击发送按钮
driver.find_element_by_xpath('//*[@id="QM_Mood_Poster_Container"]/div/div[4]/div[4]/a[2]').click()
print('发送成功!')
finally:
print('OK!')
finally:
print('End')