diff --git a/setting_data/_firm_data.json b/setting_data/_firm_data.json index 99679dd..d94731b 100644 --- a/setting_data/_firm_data.json +++ b/setting_data/_firm_data.json @@ -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" } } } \ No newline at end of file diff --git a/src/action.js b/src/action.js index 1b91692..9e63df5 100644 --- a/src/action.js +++ b/src/action.js @@ -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; } @@ -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); diff --git a/src/index.js b/src/index.js index 7737c68..0c7b98f 100644 --- a/src/index.js +++ b/src/index.js @@ -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); //特記事項入力