python で selenium

python やら java でブラウザなどを操作できる驚きのソフト 個人的なメモに近い何か 詳しくは後日

# 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://hogehoge/"
LOGIN_ID = "hogeeeeeeeee"
LOGIN_PW = "hogeeeeeeeeee"
TEXT_TITLE = "hogeeeeeeee"
UPLOAD_FILE = "hogeeeeee/eeeee/eeee"

#外部のブラウザを開くので例外処理
try:
    # ブラウザを開く。
    driver = webdriver.Chrome()
    # ログイン画面を開く
    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)
    #ここからさきはほとんど遷移関係
    sleep(1)
    driver.find_element_by_link_text("投稿").click()
    sleep(1)
    driver.find_element_by_link_text("新規追加").click()
    sleep(1)
    driver.find_element_by_id("title").send_keys(TEXT_TITLE)
    sleep(1)
    driver.find_element_by_id("insert-media-button").click()
    sleep(1)
    driver.find_element_by_xpath("//input[@type='file']").send_keys(UPLOAD_FILE)
    sleep(1)
    driver.find_element_by_xpath("//button[@class='button media-button button-primary button-large media-button-insert']").click()
    sleep(1)
    driver.find_element_by_name("publish").click()
    sleep(1)
    driver.find_element_by_link_text("ダッシュボード").click()
    sleep(1)
    driver.find_element_by_link_text("投稿").click()
    sleep(1)
    #削除
    #マウスオーバーのためのアクション宣言
    actions = ActionChains(driver)
    actions.move_to_element(driver.find_element_by_xpath("//a[contains(@aria-label,'hogehoge')]"))
    #driver.move_to_element(driver.find_element_by_xpath("//a[@aria-label='「hogehoge」 (編集)']"))
    #driver.move_to_element(driver.find_element_by_link_text("hogehoge"))
    sleep(1)
    #ゴミ箱に移動
    driver.find_element_by_class_name("trash").click()
    sleep(1)
    actions.move_to_element(driver.find_element_by_xpath("//a[contains(@aria-label,'hogehoge')]"))
    #完全削除
    sleep(1)
    actions.move_to_element(find_element_by_xpath("//a[@aria-label='「hogehoge」 (編集)']"))
    #メディア選択
    driver.find_element_by_link_text("メディア").click()
    sleep(1)
    #写真選択
    UPLOAD_FILE_PATH, ext = os.path.splitext(UPLOAD_FILE)
    path, UPLOAD_FILE_NAME = os.path.split(UPLOAD_FILE_PATH)
    driver.find_element_by_xpath("//li[@aria-label='hoge']").click()
    sleep(1)
    driver.find_element_by_xpath("//button[@class='button-link delete-attachment']").click()
    sleep(1)
    Alert(driver).accept()
    print ("正常終了しました")
    # ブラウザを終了する。
    sleep(2)
    driver.close()

except:
    driver.close()
    traceback.print_exc()