頻繁に発生する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()
また、本スクリプトは、作成環境でのみ動作検証を行っているため、すべての環境で動作することを保証するものではない。