iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Python

利用Python完成自動化測試專案系列 第 9

D9 實作發文自動化(2)

  • 分享至 

  • xImage
  •  

昨天把帳號密碼的問題搞定後,今天就要開始實作發文自動化了

首先先回顧並修正一下上週提到的步驟

  1. 前往iT 邦幫忙
  2. 點擊登入按鈕並登入
  3. 點擊鐵人發文
  4. 選擇主題
  5. 貼上文章
  6. 發文

跟上周不一樣的是瀏覽器從進去登入頁面改成進iT 邦幫忙主頁面,因為直接進入登入頁面登入會進到個人檔案頁面。

首先我們先從登入開始

登入

首先我們要進到登入頁面

# 前往登入頁面
login_page_button = browser.find_element(By.XPATH, "//a[@class='menu__item-link']")

login_page_button.click()

https://ithelp.ithome.com.tw/upload/images/20240923/201693586peASJfmfj.jpg
在這個頁面,我們要做的步驟是

  1. 輸入帳號
  2. 輸入密碼
  3. 點擊登入

我們先從找這三個步驟所對應的元素

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()

https://ithelp.ithome.com.tw/upload/images/20240923/20169358TuX1Oc9MXm.jpg
找到鐵人發文的元素,再點擊這個按鈕。
https://ithelp.ithome.com.tw/upload/images/20240923/20169358Xv2g5gIdWO.jpg
再選擇主題後就會進到發文頁面。

# 進到鐵人發文頁面

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 存取檔案並把這個自動化專案完成。


上一篇
D8 實作發文自動化(1) 機密資料如何處理
下一篇
D10 實作發文自動化(3) 完成
系列文
利用Python完成自動化測試專案12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言