Skip to content
This repository was archived by the owner on Oct 20, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 17 additions & 19 deletions setting_data/_firm_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,26 @@
}
},
"XPATH": {
"CLUB_NAME": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[1]/div/div[3]/div/div/input",
"REPRESENT_NAME": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[2]/div/div[3]/div/div/input",
"STUDENT_NUMBER": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[3]/div/div[3]/div/div/input",
"GUIDE_CONF": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[4]/div/div[3]/div/div/div/label/input",
"AVAILABILITY_CONF": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[5]/div/div[3]/div/div/div/label/input",
"DATE_INPUT": "//*[@id=\"form-container\"]/div/div/div[1]/div/div[1]/div[2]/div[2]/div[8]/div/div[3]/div/div/input[1]",
"DATE_ICON": "//*[@id=\"form-container\"]/div/div/div[1]/div/div[1]/div[2]/div[2]/div[8]/div/div[3]/div/div/button/div",
"TIME": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[9]/div/div[3]/div/div/input",
"OUT_CAMPUS": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[10]/div/div[3]/div/div[2]/div/label/input",
"NOTICES": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[11]/div/div[3]/div/div/input",
"MAIL": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[12]/div/div[3]/div/div/input",
"TEL": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[13]/div/div[3]/div/div/input",
"SUBMIT": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[3]/div[1]/button",
"CLUB_NAME": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[1]/div/div[3]/div/div/input",
"REPRESENT_NAME": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[2]/div/div[3]/div/div/input",
"STUDENT_NUMBER": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[3]/div/div[3]/div/div/input",
"GUIDE_CONF": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[4]/div/div[3]/div/div/div/label/div/input",
"AVAILABILITY_CONF": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[5]/div/div[3]/div/div/div/label/div/input",
"DATE_INPUT": "//*[@id='DatePicker0-label']",
"DATE_ICON": "//*[@id='form-container']/div/div/div[1]/div/div[1]/div[2]/div[2]/div[8]/div/div[3]/div/div/button/div",
"TIME": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[9]/div/div[3]/div/div/input",
"OUT_CAMPUS": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[10]/div/div[3]/div/div[2]/div/label/input",
"NOTICES": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[10]/div/div[3]/div/div/input",
"MAIL": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[11]/div/div[3]/div/div/input",
"TEL": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[12]/div/div[3]/div/div/input",
"SUBMIT": "//*[@id='form-main-content']/div/div[1]/div[2]/div[3]/div[1]/button",
"BUILDING_SET": {
"LIST": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[6]/div/div[3]/div",
"TEXT": "/div/label/span/span",
"SELECT": "/div/label/input"
"LIST": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[6]/div/div[3]/div",
"SELECT": "/div/label"
},
"CLASS_ROOM_SET": {
"LIST": "//div[@id='content-root']/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[7]/div/div[3]/div",
"TEXT": "/div/label/span/span",
"SELECT": "/div/label/input"
"LIST": "//*[@id='form-main-content']/div/div[1]/div[2]/div[2]/div[7]/div/div[3]/div",
"SELECT": "/div/label"
}
}
}
6 changes: 2 additions & 4 deletions src/action.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,7 @@ class screenAction {
//xpathからテキスト取得
async xpath_fetch_text(elem) {
let elementHandle = await this.page.$x(elem);
let text = await this.page.evaluate((path) => { //一括承認画面の先頭にある端末の端末管理番号を取得
return path.textContent;
}, elementHandle[0]);
let text = await (await elementHandle[0].getProperty('outerText')).jsonValue(); //一括承認画面の先頭にある端末の端末管理番号を取得
return text;
}

Expand Down Expand Up @@ -115,7 +113,7 @@ class screenAction {
let list_xpath = xpath_set.LIST;
let children = await this.child_count_xpath(list_xpath);
for (let i = 1; i <= children; i++) {
let text_xpath = `${list_xpath}/div[${i}]${xpath_set.TEXT}`;
let text_xpath = `${list_xpath}/div[${i}]`;
let select_xpath = `${list_xpath}/div[${i}]${xpath_set.SELECT}`;
let text = await this.xpath_fetch_text(text_xpath);

Expand Down
5 changes: 2 additions & 3 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,14 @@ const firm = data = require(__dirname + "/../setting_data/_firm_data.json");
await action.xpath_click(xpath.GUIDE_CONF); //「課外活動ガイドライン」と「使用可能施設一覧・申請方法」読んだ?
await action.xpath_click(xpath.AVAILABILITY_CONF); //空き情報確認した?

await action.text_search_click(xpath.BUILDING_SET, building_name); //使用希望施設選択
await action.text_search_click(xpath.BUILDING_SET, building_name); //使用希望建物の選択

await page.waitForTimeout(1000); //1秒待つ
await action.text_search_click(xpath.CLASS_ROOM_SET, class_room_name); //使用希望施設選択
await action.text_search_click(xpath.CLASS_ROOM_SET, class_room_name); //使用希望教室の選択

await page.waitForTimeout(1000); //1秒待つ
await action.xpath_type(xpath.DATE_INPUT, date); //日付入力
await action.xpath_type(xpath.TIME, time); //時間入力
await action.xpath_click(xpath.OUT_CAMPUS); //学外団体との合同使用の有無

await page.waitForTimeout(1000); //1秒待つ
await action.xpath_type(xpath.NOTICES, schedule.NOTICES); //特記事項入力
Expand Down