昨天把帳號密碼的問題搞定後,今天就要開始實作發文自動化了
首先先回顧並修正一下上週提到的步驟
跟上周不一樣的是瀏覽器從進去登入頁面改成進iT 邦幫忙主頁面,因為直接進入登入頁面登入會進到個人檔案頁面。
首先我們先從登入開始
首先我們要進到登入頁面
# 前往登入頁面
login_page_button = browser.find_element(By.XPATH, "//a[@class='menu__item-link']")
login_page_button.click()
在這個頁面,我們要做的步驟是
我們先從找這三個步驟所對應的元素
account = browser.find_element(By.ID, "account")
password = browser.find_element(By.ID, "password")
login_button = browser.find_element(By.ID, "loginBtn")
再來對這些元素執行對應的動作
load_dotenv()
ITHOMELOGIN = json.loads(os.getenv("ITHOMELOGIN"))
account.send_keys(ITHOMELOGIN["account"])
password.send_keys(ITHOMELOGIN["password"])
login_button.click()
昨天有提到 getenv 的部分沒有講清楚,在這裡一併補充。
要 import dotenv 前要先使用 pip 下載模組:
pip install python-dotenv
接下來才能 import 進來,要注意的是等等要載環境變數會用到 json ,所以要導入的有 java, os, 跟 dotenv
import json
import os
from dotenv import load_dotenv
先設定載入環境變數,之後再設一個新的變數讀取 .env 的值。
load_dotenv()
ITHOMELOGIN = json.loads(os.getenv("ITHOMELOGIN"))
account.send_keys(ITHOMELOGIN["account"])
password.send_keys(ITHOMELOGIN["password"])
完成了之後繼續設定主頁面相關的操作。
# 登入帳號密碼
account = browser.find_element(By.ID, "account")
password = browser.find_element(By.ID, "password")
login_button = browser.find_element(By.ID, "loginBtn")
load_dotenv()
ITHOMELOGIN = json.loads(os.getenv("ITHOMELOGIN"))
account.send_keys(ITHOMELOGIN["account"])
password.send_keys(ITHOMELOGIN["password"])
login_button.click()
找到鐵人發文的元素,再點擊這個按鈕。
再選擇主題後就會進到發文頁面。
# 進到鐵人發文頁面
iron_button = browser.find_element(By.XPATH, "//button[@class='menu__ironman-btn']")
select_topic_button = browser.find_element(By.XPATH, "//a[@class='ir-modal__list-link']")
iron_button.click()
select_topic_button.click()
進到頁面後就只剩下貼文章跟發文了,不過一篇鐵人賽的文章至少會超過 300 字以上,塞在程式裡會導致閱讀不便,明天我們會繼續介紹用 json 存取檔案並把這個自動化專案完成。