python selenium 軽い例

環境

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()