在powershell里运行:python upload.py username password picturename(后面三个是程序中会用到的变量)
# coding: utf-8
import sys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
webdrive = browser.get("http://www.douban.com")#"http:\\"is necessary.
try:
element = WebDriverWait(webdrive,20).until(EC.presence_of_element_located((By.ID,'form_email')))
except:
print "fail to load!"
def login():
browser.find_element_by_id('form_email').send_keys(sys.argv[1])
browser.find_element_by_id('form_password').send_keys(sys.argv[2])
captcha = raw_input("please enter captcha!\n")#need to recognize captcha by the user.
browser.find_element_by_id("captcha_field").send_keys(captcha)
browser.find_element_by_class_name('bn-submit').click()
def uploadpic():#需要把图片放在桌面上。只支持单个文件的上传。
browser.implicitly_wait(5)
browser.find_element_by_link_text(u'我的豆瓣').click()
browser.implicitly_wait(5)
browser.find_element_by_partial_link_text(u'发照片').click()
browser.implicitly_wait(5)
browser.find_element_by_xpath('//*[@id="btn_holder"]/input').send_keys('C:\Users\Administrator.USER-20150822PS\Desktop\%s.jpg' % sys.argv[3])
browser.implicitly_wait(20)
browser.find_element_by_xpath('//*[@id="sel-opt-1634248510"]').click()
browser.implicitly_wait(5)
browser.find_element_by_xpath('//*[@id="uploader-setting"]/div[2]/span/input').click()
browser.implicitly_wait(10)
login()
uploadpic()