Toggle navigation
DevOps Knowledge
作成
作成
下書き一覧
ストック
一覧
複合検索
サインイン
更新履歴
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() ``` また、本スクリプトは、作成環境でのみ動作検証を行っているため、すべての環境で動作することを保証するものではない。
現在のナレッジの内容
コンテンツ
頻繁に発生する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() ``` また、本スクリプトは、作成環境でのみ動作検証を行っているため、すべての環境で動作することを保証するものではない。
戻る