環境
OS Mac 言語 python サーバー側で使用するブログツール: wordpress
実際の例
# coding:utf-8 #例外処理と処理をゆっくり見たい場合用に引数を用いるのに必要なライブラリ import traceback import sys #ファイルの拡張子を外すためのライブラリ import os.path #selenium 関係のライブラリ from selenium import webdriver from selenium.webdriver.common.keys import Keys from time import sleep #ポップアップ(alert)が出たときの処理をする用のライブラリ from selenium.webdriver.common.alert import Alert #マウスオーバーさせるためのライブラリ from selenium.webdriver.common.action_chains import ActionChains LOGIN_URL = "http://ieeeeeeei/wp-login.php" LOGIN_ID = "hogehoge" LOGIN_PW = "hogehoge" TEXT_TITLE = "TTTTTTT" UPLOAD_FILE = "/root/hogehoge/hogeeeeee.png" argvs = sys.argv argc = len(argvs) #どんな文字でもいいので引数がある場合は sleep をちょこちょこ挟む1: def wait_func(): if (argc == 2): sleep(2) #外部のブラウザを開くので例外処理 try: # ブラウザを開く。 driver = webdriver.Chrome() #待機時間(ページ読み込み時間設定) driver.implicitly_wait(10) # ログイン画面を開く driver.get(LOGIN_URL) sleep(1) # HTML の ログイン の要素のID を取得してIDとパスワードをそれぞれ入れる driver.find_element_by_id("user_login").send_keys(LOGIN_ID) driver.find_element_by_id("user_pass").send_keys(LOGIN_PW) driver.find_element_by_id("wp-submit").send_keys(Keys.ENTER) wait_func() driver.find_element_by_id("title").send_keys(TEXT_TITLE) driver.find_element_by_id("insert-media-button").click() wait_func() #画像投稿(アップロードで implicitly_wait だと要素は読み込んでるにもかかわらずアップロードはされてないという状態でエラーが出るので直接待機時間指定) driver.find_element_by_xpath("//input[@type='file']").send_keys(UPLOAD_FILE) sleep(3) driver.find_element_by_xpath("//button[@class='button media-button button-primary button-large media-button-insert']").click() wait_func() driver.find_element_by_name("publish").click() driver.find_element_by_link_text("ダッシュボード").click() driver.find_element_by_link_text("投稿").click() #マウスオーバーのためのアクション宣言 actions = ActionChains(driver) #ゴミ箱に投稿記事を移す。 actions.move_to_element(driver.find_element_by_xpath("//a[@aria-label='「%s」 (編集)']" % TEXT_TITLE)).perform() wait_func() driver.find_element_by_xpath("//a[@aria-label='「%s」をゴミ箱に移動']" % TEXT_TITLE).click() wait_func() print ("正常終了しました") # ブラウザを終了する。 driver.close() except: driver.close() traceback.print_exc()