From 201b8e28e3a327c2e0c3707181f4a1e42e6c7c02 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 15 Oct 2023 11:54:56 +0000 Subject: [PATCH] fix image creation --- Js/createImages.js | 224 +++++++++++++++++++++++++++++++-------------- 1 file changed, 153 insertions(+), 71 deletions(-) diff --git a/Js/createImages.js b/Js/createImages.js index 14d3828..4f0404d 100755 --- a/Js/createImages.js +++ b/Js/createImages.js @@ -1,80 +1,162 @@ const {By,Key,Builder} = require("selenium-webdriver"); -require("chromedriver"); +const chrome = require('selenium-webdriver/chrome'); let fs = require('fs'); +let path = require('path'); + +const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); async function Screenshot(url, xpath, output) { - let driver = await new Builder().forBrowser("chrome").build(); + let driver = await new Builder().forBrowser("chrome").build(); - await driver.get(url).then(function () { - return driver.manage().setTimeouts({implicit: 3000}); - }).then(function () { - return driver.manage().window().setRect({width: 1440, height: 1024}); - }).then(function () { - return driver.findElement(By.id("iLoginButton")).click(); - }).then(function () { - return driver.sleep(2000); - }).then(function () { - return driver.findElement(By.xpath(xpath)); - }).then(function (ele) { - return ele.takeScreenshot(true); - }).then(function (encodedString) { - return fs.writeFileSync(output, encodedString, 'base64'); - }); + let dir = path.dirname(output); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } - return driver.quit(); + await driver.get(url).then(function () { + return driver.manage().setTimeouts({implicit: 3000}); + }).then(function () { + return driver.manage().window().setRect({width: 1024, height: 800}); + }).then(function () { + return driver.findElement(By.id("iLoginButton")).click(); + }).then(function () { + return driver.sleep(2000); + }).then(function () { + return driver.findElement(By.xpath(xpath)); + }).then(function (ele) { + return ele.takeScreenshot(true); + }).then(function (encodedString) { + return fs.writeFileSync(output, encodedString, 'base64'); + }); + + return driver.quit(); } -Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//form[@id="fLocalization"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization.png' -).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-time"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-time.png' - ); -}).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-numeric"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-numeric.png' - ); -}).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-precision"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-precision.png' - ); -}).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-weight"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-weight.png' - ); -}).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-speed"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-speed.png' - ); -}).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-length"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-length.png' - ); -}).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-area"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-area.png' - ); -}).then(function () { - Screenshot( - 'http://127.0.0.1/admin/settings/general#c-tab-2', - '//div[@id="settings-localization-volume"]', - __dirname + '/../../Modules/Admin/Docs/Help/img/general/settings-localization-volume.png' - ); -}); +const src = [ + // Help + [ + 'http://192.168.178.38/en/help/general', + '//*[@id="content"]', + __dirname + '/../../Modules/Help/Docs/Help/img/help-general-readme.png' + ], + + [ + 'http://192.168.178.38/en/help/module/list', + '//*[@id="content"]', + __dirname + '/../../Modules/Help/Docs/Help/img/help-general-module-list.png' + ], + [ + 'http://192.168.178.38/en/backend/help/module/single?id=Admin', + '//*[@id="content"]', + __dirname + '/../../Modules/Help/Docs/Help/img/help-general-module-readme.png' + ], + [ + 'http://192.168.178.38/en/backend/help/module/single?id=Admin&page=Dev%2Fstructure', + '//*[@id="content"]', + __dirname + '/../../Modules/Help/Docs/Help/img/help-general-module-structure.png' + ], + + [ + 'http://192.168.178.38/en/help/developer?id=Admin&page=Dev%2Fstructure', + '//*[@id="content"]', + __dirname + '/../../Modules/Help/Docs/Help/img/help-developer-readme.png' + ], + + // Groups + [ + 'http://192.168.178.38/en/admin/group/settings?id=3#c-tab-3', + '//*[@id="permissionForm"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-group-settings-permission-form.png' + ], + [ + 'http://192.168.178.38/en/admin/group/settings?id=3#c-tab-3', + '//*[@id="igroup-tabs"]/div[2]/div[3]/div/div[2]/div', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-group-settings-permission-list.png' + ], + + // Accounts + [ + 'http://192.168.178.38/en/admin/account/settings?id=1#c-tab-3', + '//*[@id="permissionForm"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-account-settings-permission-form.png' + ], + [ + 'http://192.168.178.38/en/admin/account/settings?id=1#c-tab-3', + '//*[@id="iaccount-tabs"]/div[2]/div[3]/div/div[2]/div', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-account-settings-permission-list.png' + ], + + // Modules + [ + 'http://192.168.178.38/en/admin/module/info?id=Admin', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-info.png' + ], + [ + 'http://192.168.178.38/en/admin/module/settings?id=Admin#c-tab-1', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-settings-general.png' + ], + [ + 'http://192.168.178.38/en/admin/module/navigation/list?id=Admin', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-settings-navigation.png' + ], + [ + 'http://192.168.178.38/en/admin/module/route/list?id=Admin', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-settings-routes.png' + ], + [ + 'http://192.168.178.38/en/admin/module/hook/list?id=Admin', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-settings-hooks.png' + ], + [ + 'http://192.168.178.38/en/admin/module/log?id=Admin', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-settings-logs.png' + ], + + // Admin-settings + [ + 'http://192.168.178.38/en/admin/module/settings?id=Admin#c-tab-1', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-admin-settings-general.png' + ], + [ + 'http://192.168.178.38/en/admin/module/settings?id=Admin#c-tab-2', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-admin-settings-localization.png' + ], + [ + 'http://192.168.178.38/en/admin/module/settings?id=Admin#c-tab-3', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-admin-settings-design.png' + ], + [ + 'http://192.168.178.38/en/admin/module/settings?id=Admin#c-tab-5', + '//*[@id="content"]', + __dirname + '/../../Modules/Admin/Docs/Help/img/admin-module-admin-settings-list.png' + ], +]; +const length = src.length; + +(async function loop() { + for (let i = 0; i < length; ++i) { + try { + Screenshot( + src[i][0], + src[i][1], + src[i][2] + ); + + await delay(1000); + } catch(error) { + console.error(error); + } + } +})(); + +// "C:\Program Files\nodejs\node.exe" Build/Js/createImages.js \ No newline at end of file