#12 [Python+Selenium] WORDPRESSプラグインを一括更新の自動化

icon incmplt が 2018/11/25 10:33 に投稿 ( icon incmplt が 2018/11/25 10:36 に編集 <更新履歴> )
  投稿を編集(サインイン)
  ストック
  アンケート回答

  目次

頻繁に発生するWORDPRESSのプラグインの更新作業。
管理画面からの操作によってプラグインの更新作業となるため、手間もかかるし複数のサイトを管理していると、それだけでかなりの時間を浪費となる。

今回は、Python+Seleniumの環境で、このWORDPRESSのプラグイン更新を一括して行う自動化スクリプトを作成した。

Python, Selenium, ChromeDriverのインストールは事前に行い動作確認を実施しておくこと。
スクリプトは以下の通り。

# coding: utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time

# Selenium Configuration
chromedrive = "c:/bin/chromedriver.exe"
# Word Press Configuration
wpurl = "https://<WORDPRESS_DOMAIN>/wp-admin/"
wpadmin = "<WORDPRESS_ACCOUNT>"
wppass = "<WORDPRESS_PASSWORD>"

# Boot Chrome
driver = webdriver.Chrome(executable_path=chromedrive)
# Connect Word Press Administration
driver.get( wpurl )
driver.find_element_by_id('user_login').send_keys( wpadmin )
driver.find_element_by_id('user_pass').send_keys( wppass )
driver.find_element_by_id('wp-submit').click()
time.sleep(5)
# Move to Update Page
driver.get( wpurl + '/update-core.php')
driver.implicitly_wait(5)
# Update plugins
plugupdate = driver.find_elements_by_id('upgrade-plugins')
if plugupdate :
    # Update plugin found.
    terms = driver.find_element_by_xpath("//input[@id='plugins-select-all']")
    terms.click()
    driver.find_element_by_id('upgrade-plugins').click()
    print('Update plugins')
else:
    # Update plugin not found.
    print('Update plugin not found.')
    driver.close()
# アップデート結果を確認するためにアップデートが走った場合にはcloseしない
# 以下の行を有効にするとアップデート後にブラウザをクローズするが非推奨
# driver.close()

すべてのバージョンでの動作を保証するものではないため、試験のためスクリプト中の以下のコードをコメントアウトして、「すべてのプラグインの更新」にチェックが入ることを事前に確認しておく必要がある。

driver.find_element_by_id('upgrade-plugins').click()

また、本スクリプトは、作成環境でのみ動作検証を行っているため、すべての環境で動作することを保証するものではない。

 添付ファイル     - [0]


 コメント追加