octoparse-cli 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +271 -0
- package/RUNTIME_SECURITY_NOTICE.txt +41 -0
- package/SECURITY.md +24 -0
- package/dist/cli/args.js +34 -0
- package/dist/cli/help.js +214 -0
- package/dist/cli/output.js +39 -0
- package/dist/commands/auth.js +283 -0
- package/dist/commands/capabilities.js +118 -0
- package/dist/commands/cloud.js +241 -0
- package/dist/commands/data.js +220 -0
- package/dist/commands/doctor.js +73 -0
- package/dist/commands/env.js +63 -0
- package/dist/commands/local.js +251 -0
- package/dist/commands/run.js +622 -0
- package/dist/commands/runs.js +171 -0
- package/dist/commands/task.js +101 -0
- package/dist/index.js +133 -0
- package/dist/runtime/account-capabilities.js +71 -0
- package/dist/runtime/api-client.js +290 -0
- package/dist/runtime/artifacts.js +33 -0
- package/dist/runtime/auth.js +94 -0
- package/dist/runtime/bridge-hub.js +173 -0
- package/dist/runtime/client-headers.js +23 -0
- package/dist/runtime/cloud-data.js +75 -0
- package/dist/runtime/config.js +48 -0
- package/dist/runtime/data-exporter.js +267 -0
- package/dist/runtime/engine-host.js +449 -0
- package/dist/runtime/local-runs.js +92 -0
- package/dist/runtime/naming.js +13 -0
- package/dist/runtime/run-control.js +363 -0
- package/dist/runtime/run-services.js +380 -0
- package/dist/runtime/security-notice.js +78 -0
- package/dist/runtime/task-definition-provider.js +282 -0
- package/dist/types.js +4 -0
- package/examples/minimal-task.json +6 -0
- package/examples/navigate-example-task.json +6 -0
- package/node_modules/@octopus/bpmn/index.js +3 -0
- package/node_modules/@octopus/bpmn/lib/Context.js +245 -0
- package/node_modules/@octopus/bpmn/lib/Definition.js +258 -0
- package/node_modules/@octopus/bpmn/lib/Engine.js +275 -0
- package/node_modules/@octopus/bpmn/lib/PrematureStopError.js +7 -0
- package/node_modules/@octopus/bpmn/lib/activities/Activity.js +202 -0
- package/node_modules/@octopus/bpmn/lib/activities/BaseProcess.js +308 -0
- package/node_modules/@octopus/bpmn/lib/activities/BaseTask.js +145 -0
- package/node_modules/@octopus/bpmn/lib/activities/BoundaryEvent.js +12 -0
- package/node_modules/@octopus/bpmn/lib/activities/Dummy.js +10 -0
- package/node_modules/@octopus/bpmn/lib/activities/EventDefinition.js +99 -0
- package/node_modules/@octopus/bpmn/lib/activities/Flow.js +52 -0
- package/node_modules/@octopus/bpmn/lib/activities/Form.js +67 -0
- package/node_modules/@octopus/bpmn/lib/activities/InputOutput.js +53 -0
- package/node_modules/@octopus/bpmn/lib/activities/IntermediateCatchEvent.js +12 -0
- package/node_modules/@octopus/bpmn/lib/activities/MessageFlow.js +19 -0
- package/node_modules/@octopus/bpmn/lib/activities/MultiInstanceLoopCharacteristics.js +160 -0
- package/node_modules/@octopus/bpmn/lib/activities/Properties.js +27 -0
- package/node_modules/@octopus/bpmn/lib/activities/SequenceFlow.js +56 -0
- package/node_modules/@octopus/bpmn/lib/activities/ServiceConnector.js +71 -0
- package/node_modules/@octopus/bpmn/lib/context-helper.js +198 -0
- package/node_modules/@octopus/bpmn/lib/events/EndEvent.js +22 -0
- package/node_modules/@octopus/bpmn/lib/events/ErrorEvent.js +41 -0
- package/node_modules/@octopus/bpmn/lib/events/MessageEvent.js +19 -0
- package/node_modules/@octopus/bpmn/lib/events/StartEvent.js +55 -0
- package/node_modules/@octopus/bpmn/lib/events/TimerEvent.js +75 -0
- package/node_modules/@octopus/bpmn/lib/expressions.js +41 -0
- package/node_modules/@octopus/bpmn/lib/gateways/ExclusiveGateway.js +86 -0
- package/node_modules/@octopus/bpmn/lib/gateways/InclusiveGateway.js +56 -0
- package/node_modules/@octopus/bpmn/lib/gateways/ParallelGateway.js +195 -0
- package/node_modules/@octopus/bpmn/lib/getPropertyValue.js +83 -0
- package/node_modules/@octopus/bpmn/lib/index.js +6 -0
- package/node_modules/@octopus/bpmn/lib/mapper.js +55 -0
- package/node_modules/@octopus/bpmn/lib/parameter.js +119 -0
- package/node_modules/@octopus/bpmn/lib/script-helper.js +45 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ManualTask.js +31 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ReceiveTask.js +31 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ScriptTask.js +35 -0
- package/node_modules/@octopus/bpmn/lib/tasks/SendTask.js +16 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ServiceTask.js +68 -0
- package/node_modules/@octopus/bpmn/lib/tasks/SubProcess.js +17 -0
- package/node_modules/@octopus/bpmn/lib/tasks/Task.js +16 -0
- package/node_modules/@octopus/bpmn/lib/tasks/UserTask.js +47 -0
- package/node_modules/@octopus/bpmn/lib/transformer.js +13 -0
- package/node_modules/@octopus/bpmn/lib/validation.js +111 -0
- package/node_modules/@octopus/bpmn/package.json +17 -0
- package/node_modules/@octopus/bpmn/types/bpmn.d.ts +85 -0
- package/node_modules/@octopus/engine/README.md +370 -0
- package/node_modules/@octopus/engine/dist/actions/BackPreWebPageAction.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/actions/BackPreWebPageAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/BaseAction.d.ts +339 -0
- package/node_modules/@octopus/engine/dist/actions/BaseAction.js +1559 -0
- package/node_modules/@octopus/engine/dist/actions/BranchAction.d.ts +9 -0
- package/node_modules/@octopus/engine/dist/actions/BranchAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/ClickAction.d.ts +22 -0
- package/node_modules/@octopus/engine/dist/actions/ClickAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/ConditionAction.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/actions/ConditionAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/EmptyAction.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/actions/EmptyAction.js +12 -0
- package/node_modules/@octopus/engine/dist/actions/EnterCaptchaAction.d.ts +28 -0
- package/node_modules/@octopus/engine/dist/actions/EnterCaptchaAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/EnterTextAction.d.ts +20 -0
- package/node_modules/@octopus/engine/dist/actions/EnterTextAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/ExtractDataAction.d.ts +40 -0
- package/node_modules/@octopus/engine/dist/actions/ExtractDataAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/LoopAction.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/actions/LoopAction.js +526 -0
- package/node_modules/@octopus/engine/dist/actions/LoopStartAction.d.ts +47 -0
- package/node_modules/@octopus/engine/dist/actions/LoopStartAction.js +607 -0
- package/node_modules/@octopus/engine/dist/actions/MouseOverAction.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/actions/MouseOverAction.js +34 -0
- package/node_modules/@octopus/engine/dist/actions/NavigateAction.d.ts +38 -0
- package/node_modules/@octopus/engine/dist/actions/NavigateAction.js +535 -0
- package/node_modules/@octopus/engine/dist/actions/SwitchComboAction.d.ts +13 -0
- package/node_modules/@octopus/engine/dist/actions/SwitchComboAction.js +69 -0
- package/node_modules/@octopus/engine/dist/browser.d.ts +17 -0
- package/node_modules/@octopus/engine/dist/browser.js +157 -0
- package/node_modules/@octopus/engine/dist/browserProxy.d.ts +90 -0
- package/node_modules/@octopus/engine/dist/browserProxy.js +1 -0
- package/node_modules/@octopus/engine/dist/configs/BaseConfig.d.ts +20 -0
- package/node_modules/@octopus/engine/dist/configs/BaseConfig.js +88 -0
- package/node_modules/@octopus/engine/dist/configs/BranchConfig.d.ts +7 -0
- package/node_modules/@octopus/engine/dist/configs/BranchConfig.js +1 -0
- package/node_modules/@octopus/engine/dist/configs/ClickConfig.d.ts +36 -0
- package/node_modules/@octopus/engine/dist/configs/ClickConfig.js +65 -0
- package/node_modules/@octopus/engine/dist/configs/EnterCaptchaConfig.d.ts +19 -0
- package/node_modules/@octopus/engine/dist/configs/EnterCaptchaConfig.js +25 -0
- package/node_modules/@octopus/engine/dist/configs/EnterTextConfig.d.ts +24 -0
- package/node_modules/@octopus/engine/dist/configs/EnterTextConfig.js +36 -0
- package/node_modules/@octopus/engine/dist/configs/ExtractDataConfig.d.ts +12 -0
- package/node_modules/@octopus/engine/dist/configs/ExtractDataConfig.js +1 -0
- package/node_modules/@octopus/engine/dist/configs/LoopConfig.d.ts +25 -0
- package/node_modules/@octopus/engine/dist/configs/LoopConfig.js +40 -0
- package/node_modules/@octopus/engine/dist/configs/LoopStartConfig.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/configs/LoopStartConfig.js +12 -0
- package/node_modules/@octopus/engine/dist/configs/MouseOverConfig.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/configs/MouseOverConfig.js +15 -0
- package/node_modules/@octopus/engine/dist/configs/NavigateConfig.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/configs/NavigateConfig.js +121 -0
- package/node_modules/@octopus/engine/dist/configs/SwitchComboConfig.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/configs/SwitchComboConfig.js +15 -0
- package/node_modules/@octopus/engine/dist/enums/index.d.ts +419 -0
- package/node_modules/@octopus/engine/dist/enums/index.js +314 -0
- package/node_modules/@octopus/engine/dist/extension/BrowserWebSocketTransport-D_zAGZMQ.js +1 -0
- package/node_modules/@octopus/engine/dist/extension/LaunchOptions-DxvePrV4.js +6 -0
- package/node_modules/@octopus/engine/dist/extension/NodeWebSocketTransport-BTgRVB7Z.js +6 -0
- package/node_modules/@octopus/engine/dist/extension/background.js +396 -0
- package/node_modules/@octopus/engine/dist/extension/bidi-C_GIZ8Uz.js +131 -0
- package/node_modules/@octopus/engine/dist/extension/manifest.json +27 -0
- package/node_modules/@octopus/engine/dist/extension/src/content/anti-detection.js +1 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/BaseExtensionBridge.d.ts +21 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/BaseExtensionBridge.js +117 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/SessionExtensionBridge.d.ts +17 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/SessionExtensionBridge.js +29 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/index.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/index.js +5 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/types.d.ts +159 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/types.js +5 -0
- package/node_modules/@octopus/engine/dist/extensions/ublock-origin/uBlock0.chromium.tar.xz +0 -0
- package/node_modules/@octopus/engine/dist/extensions/ublock-origin-lite/uBOLite.chromium.tar.xz +0 -0
- package/node_modules/@octopus/engine/dist/index.d.ts +169 -0
- package/node_modules/@octopus/engine/dist/index.js +1 -0
- package/node_modules/@octopus/engine/dist/models/actionItem.d.ts +16 -0
- package/node_modules/@octopus/engine/dist/models/actionItem.js +15 -0
- package/node_modules/@octopus/engine/dist/models/conditionCheckArgs.d.ts +11 -0
- package/node_modules/@octopus/engine/dist/models/conditionCheckArgs.js +11 -0
- package/node_modules/@octopus/engine/dist/models/customizeCookie.d.ts +14 -0
- package/node_modules/@octopus/engine/dist/models/customizeCookie.js +6 -0
- package/node_modules/@octopus/engine/dist/models/downloadFileConfig.d.ts +17 -0
- package/node_modules/@octopus/engine/dist/models/downloadFileConfig.js +26 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundArgs.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundArgs.js +12 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundError.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundError.js +6 -0
- package/node_modules/@octopus/engine/dist/models/extractItem.d.ts +37 -0
- package/node_modules/@octopus/engine/dist/models/extractItem.js +35 -0
- package/node_modules/@octopus/engine/dist/models/extractTemplate.d.ts +11 -0
- package/node_modules/@octopus/engine/dist/models/extractTemplate.js +48 -0
- package/node_modules/@octopus/engine/dist/models/extractTextItem.d.ts +10 -0
- package/node_modules/@octopus/engine/dist/models/extractTextItem.js +17 -0
- package/node_modules/@octopus/engine/dist/models/globalConfig.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/models/globalConfig.js +1 -0
- package/node_modules/@octopus/engine/dist/models/httpHeader.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/models/httpHeader.js +10 -0
- package/node_modules/@octopus/engine/dist/models/operation.d.ts +27 -0
- package/node_modules/@octopus/engine/dist/models/operation.js +242 -0
- package/node_modules/@octopus/engine/dist/models/retryCondition.d.ts +7 -0
- package/node_modules/@octopus/engine/dist/models/retryCondition.js +10 -0
- package/node_modules/@octopus/engine/dist/models/task.d.ts +89 -0
- package/node_modules/@octopus/engine/dist/models/task.js +120 -0
- package/node_modules/@octopus/engine/dist/models/trigger.d.ts +66 -0
- package/node_modules/@octopus/engine/dist/models/trigger.js +117 -0
- package/node_modules/@octopus/engine/dist/package.json +26 -0
- package/node_modules/@octopus/engine/dist/public-types.d.ts +13 -0
- package/node_modules/@octopus/engine/dist/public-types.js +2 -0
- package/node_modules/@octopus/engine/dist/settings.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/settings.js +20 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ClickCaptchaSolver.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ClickCaptchaSolver.js +1 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/HCaptchaSolver.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/HCaptchaSolver.js +73 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ImageCaptchaSolver.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ImageCaptchaSolver.js +74 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/RecaptchaSolver.d.ts +9 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/RecaptchaSolver.js +371 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SliderCaptchaSolver.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SliderCaptchaSolver.js +184 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SlidingTrajectory.d.ts +50 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SlidingTrajectory.js +125 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/types.d.ts +68 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/types.js +34 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/utils.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/utils.js +15 -0
- package/node_modules/@octopus/engine/dist/translator/actionFactory.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/translator/actionFactory.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/activityTypeEnum.d.ts +22 -0
- package/node_modules/@octopus/engine/dist/translator/activityTypeEnum.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/backPreWebPageAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/backPreWebPageAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/baseAction.d.ts +31 -0
- package/node_modules/@octopus/engine/dist/translator/baseAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/breakActivity.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/breakActivity.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/clickAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/clickAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/completeWF.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/completeWF.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/conditionAction.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/translator/conditionAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/emptyAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/emptyAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/enterCapachaAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/enterCapachaAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/enterTextAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/enterTextAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/extractDataAction.d.ts +13 -0
- package/node_modules/@octopus/engine/dist/translator/extractDataAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/loopAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/loopAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/mouseOverAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/mouseOverAction.js +19 -0
- package/node_modules/@octopus/engine/dist/translator/navigateAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/navigateAction.js +117 -0
- package/node_modules/@octopus/engine/dist/translator/rootAction.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/translator/rootAction.js +80 -0
- package/node_modules/@octopus/engine/dist/translator/switchCombo2Action.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/switchCombo2Action.js +19 -0
- package/node_modules/@octopus/engine/dist/translator/translator.d.ts +1 -0
- package/node_modules/@octopus/engine/dist/translator/translator.js +36 -0
- package/node_modules/@octopus/engine/dist/type.d.ts +25 -0
- package/node_modules/@octopus/engine/dist/type.js +2 -0
- package/node_modules/@octopus/engine/dist/types/browser.d.ts +191 -0
- package/node_modules/@octopus/engine/dist/types/browser.js +1 -0
- package/node_modules/@octopus/engine/dist/types/browserManager.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/types/browserManager.js +1 -0
- package/node_modules/@octopus/engine/dist/types/index.d.ts +40 -0
- package/node_modules/@octopus/engine/dist/types/index.js +2 -0
- package/node_modules/@octopus/engine/dist/types/plugin.d.ts +29 -0
- package/node_modules/@octopus/engine/dist/types/plugin.js +2 -0
- package/node_modules/@octopus/engine/dist/utils/AsyncEmitter.d.ts +15 -0
- package/node_modules/@octopus/engine/dist/utils/AsyncEmitter.js +1 -0
- package/node_modules/@octopus/engine/dist/utils/DataStore.d.ts +58 -0
- package/node_modules/@octopus/engine/dist/utils/DataStore.js +1 -0
- package/node_modules/@octopus/engine/dist/utils/DateTimeFormatHelper.d.ts +22 -0
- package/node_modules/@octopus/engine/dist/utils/DateTimeFormatHelper.js +173 -0
- package/node_modules/@octopus/engine/dist/utils/FileDownloader.d.ts +108 -0
- package/node_modules/@octopus/engine/dist/utils/FileDownloader.js +1 -0
- package/node_modules/@octopus/engine/dist/utils/HttpRequester.d.ts +43 -0
- package/node_modules/@octopus/engine/dist/utils/HttpRequester.js +174 -0
- package/node_modules/@octopus/engine/dist/utils/JsonParser.d.ts +95 -0
- package/node_modules/@octopus/engine/dist/utils/JsonParser.js +439 -0
- package/node_modules/@octopus/engine/dist/utils/Operations.d.ts +27 -0
- package/node_modules/@octopus/engine/dist/utils/Operations.js +115 -0
- package/node_modules/@octopus/engine/dist/utils/index.d.ts +28 -0
- package/node_modules/@octopus/engine/dist/utils/index.js +356 -0
- package/node_modules/@octopus/engine/package.json +58 -0
- package/package.json +79 -0
- package/schemas/capabilities-v1.schema.json +234 -0
- package/schemas/detached-bootstrap-v1.schema.json +42 -0
- package/schemas/json-envelope-v1.schema.json +39 -0
- package/schemas/run-event-v1.schema.json +47 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import BranchConfig from '../configs/BranchConfig';
|
|
2
|
+
import BaseAction from './BaseAction';
|
|
3
|
+
export default class BranchAction extends BaseAction {
|
|
4
|
+
config: BranchConfig;
|
|
5
|
+
protected parseConfig(config: any): BranchConfig;
|
|
6
|
+
checkSkip(): any;
|
|
7
|
+
check(): Promise<boolean | import("puppeteer-core").ElementHandle<Element>>;
|
|
8
|
+
wait(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var __importDefault=this&&this['__importDefault']||function(_0x274bff){return _0x274bff&&_0x274bff['__esModule']?_0x274bff:{'default':_0x274bff};};Object['defineProperty'](exports,'__esModule',{'value':!![]});const Operations_1=require('../utils/Operations'),BranchConfig_1=__importDefault(require('../configs/BranchConfig')),enums_1=require('../enums'),BaseAction_1=__importDefault(require('./BaseAction'));class BranchAction extends BaseAction_1['default']{['parseConfig'](_0x20a3fb){return new BranchConfig_1['default'](_0x20a3fb);}['checkSkip'](){if(this['config']['useLoopItem']){const _0x28e079=this['execution']['flow']['parentContext']['id'];return this['getIsSkiptLoop'](_0x28e079)||this['getIsSkipActionUtilNextLoop'](_0x28e079);}return![];}async['check'](){const _0x3d6de6=await this['getCurrentPage']();switch(this['config']['checkType']){case'DoNotCheck':this['log'](enums_1['LogKey']['Branch']['Action']['Allow'],this['name']);return!![];case'ContainText':try{if(this['config']['useLoopItem']){const _0x50aade=this['getLoopValue'](this['execution']['flow']['parentContext']['id']),_0x41d323=await(0x0,Operations_1['processElement'])(_0x50aade,_0x3d6de6,'$eval',_0x3caf31=>(_0x3caf31===null||_0x3caf31===void 0x0?void 0x0:_0x3caf31['innerText'])||_0x3caf31['textContent']),_0x4fc98e=_0x41d323['indexOf'](this['config']['checkValue'])>-0x1;if(_0x4fc98e)this['log'](enums_1['LogKey']['Branch']['Action']['Text']['Loop']['Success'],this['name'],this['config']['checkValue']);else this['error'](enums_1['LogKey']['Branch']['Action']['Text']['Loop']['Failure'],this['name'],this['config']['checkValue']);return _0x4fc98e;}else{const _0x112181=await _0x3d6de6['content'](),_0x5a4c0a=_0x112181['indexOf'](this['config']['checkValue'])>-0x1;if(_0x5a4c0a)this['log'](enums_1['LogKey']['Branch']['Action']['Text']['Normal']['Success'],this['name'],this['config']['checkValue']);else this['error'](enums_1['LogKey']['Branch']['Action']['Text']['Normal']['Failure'],this['name'],this['config']['checkValue']);return _0x5a4c0a;}}catch(_0x25d53e){return await this['checkPause'](),this['config']['useLoopItem']?this['error'](enums_1['LogKey']['Branch']['Action']['Text']['Loop']['Failure'],this['name'],this['config']['checkValue']):this['error'](enums_1['LogKey']['Branch']['Action']['Text']['Normal']['Failure'],this['name'],this['config']['checkValue']),![];}case'ContainItem':{const _0xf54312=this['config']['getElementXPath'](this['config']['checkValue']);try{if(this['config']['useLoopItem']){const {AbsXpath:_0x498c01}=this['getLoopValue'](this['execution']['flow']['parentContext']['id']);_0xf54312['AbsXpath']=_0x498c01+_0xf54312['AbsXpath'];const _0x390018=await(0x0,Operations_1['getElement'])(_0xf54312,_0x3d6de6);if(_0x390018)this['log'](enums_1['LogKey']['Branch']['Action']['Element']['Loop']['Success'],this['name'],_0xf54312['AbsXpath']);else this['error'](enums_1['LogKey']['Branch']['Action']['Element']['Loop']['Failure'],this['name'],_0xf54312['AbsXpath']);return _0x390018;}else{const _0x4de86a=await(0x0,Operations_1['getElement'])(_0xf54312,_0x3d6de6);if(_0x4de86a)this['log'](enums_1['LogKey']['Branch']['Action']['Element']['Normal']['Success'],this['name'],_0xf54312['AbsXpath']);else this['error'](enums_1['LogKey']['Branch']['Action']['Element']['Normal']['Failure'],this['name'],_0xf54312['AbsXpath']);return _0x4de86a;}}catch{return await this['checkPause'](),this['config']['useLoopItem']?this['error'](enums_1['LogKey']['Branch']['Action']['Element']['Loop']['Failure'],this['name'],_0xf54312['AbsXpath']):this['error'](enums_1['LogKey']['Branch']['Action']['Element']['Normal']['Failure'],this['name'],_0xf54312['AbsXpath']),![];}}}}async['wait'](){await super['wait'](),this['log'](enums_1['LogKey']['Branch']['Begin'],this['name']);}}exports['default']=BranchAction;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import ClickConfig from '../configs/ClickConfig';
|
|
2
|
+
import BaseAction from './BaseAction';
|
|
3
|
+
export default class ClickAction extends BaseAction {
|
|
4
|
+
config: ClickConfig;
|
|
5
|
+
private retryTimes;
|
|
6
|
+
private actionItem;
|
|
7
|
+
private isPageLoading;
|
|
8
|
+
private isPageLoaded;
|
|
9
|
+
private page;
|
|
10
|
+
protected parseConfig(config: unknown): ClickConfig;
|
|
11
|
+
private checkElementClickable;
|
|
12
|
+
private buildClickDebugContext;
|
|
13
|
+
private normalizeTargetWaitReason;
|
|
14
|
+
private normalizeBridgeClickReason;
|
|
15
|
+
private click;
|
|
16
|
+
private execute;
|
|
17
|
+
/** 判定是否需要重试 */
|
|
18
|
+
private checkRetry;
|
|
19
|
+
wait(): Promise<void>;
|
|
20
|
+
onPageLoading(url: string): void;
|
|
21
|
+
onPageLoaded(url: string, isTimeout?: boolean): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var __importDefault=this&&this['__importDefault']||function(_0x2096e4){return _0x2096e4&&_0x2096e4['__esModule']?_0x2096e4:{'default':_0x2096e4};};Object['defineProperty'](exports,'__esModule',{'value':!![]});const ClickConfig_1=__importDefault(require('../configs/ClickConfig')),enums_1=require('../enums'),actionItem_1=require('../models/actionItem'),conditionCheckArgs_1=require('../models/conditionCheckArgs'),Operations_1=require('../utils/Operations'),BaseAction_1=__importDefault(require('./BaseAction'));class ClickAction extends BaseAction_1['default']{constructor(){super(...arguments),this['retryTimes']=0x0,this['isPageLoading']=![],this['isPageLoaded']=![];}['parseConfig'](_0x35d211){return new ClickConfig_1['default'](_0x35d211,this['activity']['activity']['extensionElements']);}async['checkElementClickable'](_0x2789c1){const _0x449add=await(0x0,Operations_1['queryElement'])(_0x2789c1,this['page']);if(!_0x449add)return![];await _0x449add['scrollIntoView']();const [_0x4d4531,_0x8179f5,_0x4fb995]=await Promise['all']([_0x449add['isVisible'](),_0x449add['isIntersectingViewport'](),_0x449add['evaluate'](_0x81e4e6=>{const _0x32dc67=_0x81e4e6['getBoundingClientRect'](),_0x50e037=_0x32dc67['left']+_0x32dc67['width']/0x2,_0x1b2f9b=_0x32dc67['top']+_0x32dc67['height']/0x2,_0x3ce908=document['elementFromPoint'](_0x50e037,_0x1b2f9b);return _0x81e4e6&&(_0x3ce908===_0x81e4e6||_0x81e4e6['contains'](_0x3ce908)||_0x3ce908['contains'](_0x81e4e6));})]);return _0x4d4531&&_0x8179f5&&_0x4fb995;}['buildClickDebugContext'](_0x4f962e,_0x3960d5,_0x4b6338){return'bridge-click-debug\x20tabId='+(_0x4b6338!==null&&_0x4b6338!==void 0x0?_0x4b6338:'unknown')+'\x20xpath='+_0x4f962e['AbsXpath']+'\x20openNewWindow='+_0x3960d5;}['normalizeTargetWaitReason'](_0x13a2e9){const _0x16e451=_0x13a2e9 instanceof Error?_0x13a2e9['message']:String(_0x13a2e9);if(_0x16e451==='waitForTarget\x20timeout')return{'reasonCode':'timeout','reasonDetail':_0x16e451};if(_0x16e451==='waitForTarget\x20aborted')return{'reasonCode':'aborted','reasonDetail':_0x16e451};return{'reasonCode':'unknown','reasonDetail':_0x16e451};}['normalizeBridgeClickReason'](_0x383f39){const _0x2bd168=_0x383f39 instanceof Error?_0x383f39['message']:String(_0x383f39);if(_0x2bd168['includes']('No\x20extension\x20connected'))return{'reasonCode':'no_extension','reasonDetail':_0x2bd168};if(_0x2bd168['includes']('Command\x20timeout'))return{'reasonCode':'command_timeout','reasonDetail':_0x2bd168};if(_0x383f39 instanceof Error)return{'reasonCode':'command_failed','reasonDetail':_0x2bd168};return{'reasonCode':'unknown','reasonDetail':_0x2bd168};}async['click'](_0x519514,_0xf8ffc6=![]){if(this['useExtensionBridge']){const _0x3ef28b=await this['getTabIdForPage'](this['page']);if(_0x3ef28b!==undefined){const _0x95532c=this['buildClickDebugContext'](_0x519514,_0xf8ffc6,_0x3ef28b);try{const _0x50f9fe=await this['browserProxy']['extensionBridge']['sendActionCommand']({'action':'click','tabId':_0x3ef28b,'frame':_0x519514['IsIFrame']?{'isIframe':!![],'iframeXpath':_0x519514['IFrameAbsXPath']}:{'isIframe':![]},'target':{'type':'xpath','xpath':_0x519514['AbsXpath']},'payload':{'openNewWindow':_0xf8ffc6,'openInBackground':_0xf8ffc6,'modifier':process['platform']==='darwin'?'Meta':'Control','ensureInView':!![],'mode':'dom-click'}});if(_0xf8ffc6&&_0x50f9fe['success']){const _0x17a113=_0x50f9fe['data'];if(typeof(_0x17a113===null||_0x17a113===void 0x0?void 0x0:_0x17a113['newTabId'])==='number')return this['debug']('bridge\x20click\x20openNewWindow\x20success\x20'+_0x95532c+'\x20bridgeState=success\x20newTabState=present\x20newTabId='+_0x17a113['newTabId']),{'newTabId':_0x17a113['newTabId']};else this['debug']('bridge\x20click\x20openNewWindow\x20success\x20'+_0x95532c+'\x20bridgeState=success\x20newTabState=missing');}return;}catch(_0x335fa6){const {reasonCode:_0x3321e3,reasonDetail:_0x310430}=this['normalizeBridgeClickReason'](_0x335fa6);this['debug']('bridge\x20click\x20failed\x20'+_0x95532c+'\x20bridgeState=failed\x20newTabState=unknown\x20reason='+_0x3321e3+'\x20detail='+_0x310430);throw _0x335fa6;}}}const _0x353fd2=await(0x0,Operations_1['queryElement'])(_0x519514,this['page']),_0x1416c5=await this['checkElementClickable'](_0x519514),_0x50c41e=await _0x353fd2['evaluate'](_0x330d8b=>_0x330d8b['tagName']['toLowerCase']()==='a'),_0x3a1396=await _0x353fd2['evaluate']((_0x1601c8,_0x2eab4c)=>{var _0x9715cf;if(_0x2eab4c){const _0x41a116=((_0x9715cf=_0x1601c8['getAttribute']('href'))===null||_0x9715cf===void 0x0?void 0x0:_0x9715cf['trim']())||'';if(!_0x41a116||_0x41a116['startsWith']('#')||/^\s*javascript:/i['test'](_0x41a116))return![];}else return![];return!![];},_0x50c41e),_0x25a1f3=await this['locator'](this['page'],_0x519514),_0x2061ec=process['platform']==='darwin'?'Meta':'Control';_0x1416c5?_0xf8ffc6?_0x3a1396?await _0x353fd2['evaluate'](_0x473263=>{window['open'](_0x473263['href'],'_blank');}):(await Promise['all']([this['page']['keyboard']['down']('Shift'),this['page']['keyboard']['down'](_0x2061ec)]),await _0x25a1f3['click'](),await Promise['all']([this['page']['keyboard']['up']('Shift'),this['page']['keyboard']['up'](_0x2061ec)]),this['log'](enums_1['LogKey']['Click']['NewWindow']['Action'],this['name'])):await _0x25a1f3['click']():await _0x353fd2['evaluate']((_0x5a6a20,_0x23a04f,_0x56961c)=>{const _0x33c422=_0x56961c?_0x5a6a20:_0x5a6a20['closest']('a');_0x23a04f&&_0x33c422&&_0x33c422['setAttribute']('target','_blank'),_0x5a6a20['click']();},_0xf8ffc6,_0x50c41e);}async['execute'](){this['isPageLoading']=![],this['isPageLoaded']=![];try{const _0x291dd1=(this['config']['ajaxTimeout']||1.5)*0x3e8,_0x599c34=this['buildClickDebugContext'](this['actionItem'],this['config']['openInNewWindow'],this['useExtensionBridge']?await this['getTabIdForPage'](this['page']):undefined),_0x443b97=new AbortController(),_0x41aa77=this['config']['openInNewWindow']?this['executeTimeMax']:_0x291dd1;let _0x25c522=![];const _0x111ec9=this['click'](this['actionItem'],this['config']['openInNewWindow'])['then'](async _0x69ac27=>{if(this['config']['openInNewWindow']&&typeof(_0x69ac27===null||_0x69ac27===void 0x0?void 0x0:_0x69ac27['newTabId'])==='number'){const _0x4c96a5=await this['browserProxy']['bindExtensionTab'](_0x69ac27['newTabId'],_0x41aa77);_0x4c96a5?(_0x25c522=!![],_0x443b97['abort'](),console['log']('[Workflow/Click]\x20runtime\x20adopted\x20newTabId='+_0x69ac27['newTabId']+'\x20url='+_0x4c96a5['url']()),this['debug']('bridge\x20click\x20runtime\x20adopted\x20'+_0x599c34+'\x20newTabId='+_0x69ac27['newTabId'])):(console['log']('[Workflow/Click]\x20runtime\x20adopt\x20missed\x20newTabId='+_0x69ac27['newTabId']),this['debug']('bridge\x20click\x20runtime\x20adopt\x20missed\x20'+_0x599c34+'\x20newTabId='+_0x69ac27['newTabId']));}return _0x69ac27;})['catch'](_0x39ef0a=>{_0x443b97['abort']();throw _0x39ef0a;}),[_0xed18a,,_0x11bded]=await Promise['allSettled']([this['waitForTarget'](_0x41aa77,{'signal':_0x443b97['signal']}),this['page']['waitForNetworkIdle']({'timeout':_0x291dd1,'idleTime':0x12c,'concurrency':0x3}),_0x111ec9]);if(_0xed18a['status']=='rejected'){const {reasonCode:_0x302fb5,reasonDetail:_0xf1f578}=this['normalizeTargetWaitReason'](_0xed18a['reason']);!(_0x25c522&&_0x302fb5==='aborted')&&(this['debug']('waitForTarget\x20rejected\x20'+_0x599c34+'\x20reason='+_0x302fb5+'\x20detail='+_0xf1f578),this['collectProxyLog']('['+this['name']+']\x20waitForTarget\x20rejected\x20'+_0x599c34+'\x20reason='+_0x302fb5+'\x20detail='+_0xf1f578,![]));}if(_0x11bded['status']=='rejected'){console['log']('点击元素失败'),this['collectProxyLog']('['+this['name']+']\x20点击元素失败\x20'+_0x11bded['reason'],![]);throw new Error(_0x11bded['reason']);}}catch(_0x53ad7c){await this['checkPause'](),console['log']('元素未找到',_0x53ad7c);}finally{await this['scroll'](),this['finish']();}}async['checkRetry'](){let _0x1901b7=![];if(!this['config']['enableRetry'])return _0x1901b7;if(++this['retryTimes']>this['config']['maxRetry'])return _0x1901b7;if(this['config']['textContain']){}if(this['config']['retryConditions']&&this['config']['retryConditions']['length']>0x0){const _0x10daf=new conditionCheckArgs_1['ConditionCheckArgs'](this['config']['waitItem'],'Multiple');_0x10daf['actionConfig']=this['config'],_0x10daf['navigateType']='OpenWebpage',_0x10daf['retryConditions']=this['config']['retryConditions'],_0x1901b7=await this['conditionCheck'](_0x10daf,this['page']);}if(_0x1901b7)this['log'](enums_1['LogKey']['Common']['Retry']['Success'],this['name'],this['config']['timeInterval'],this['retryTimes']);else this['error'](enums_1['LogKey']['Common']['Retry']['Failure'],this['name']);return await this['checkPause'](),_0x1901b7;}async['wait'](){var _0x51a2ad,_0x5831ae,_0x560e77;if(this['getIsSkipCurrentLoop']()||this['getIsSkipActionUtilNextLoop'](this['getNodeId']())){this['finish']();return;}await this['checkPause'](),await super['wait'](),this['page']=await this['getCurrentPage'](),this['actionItem']=this['config']['elementXPath'];if(this['config']['useLoopItem']){const {AbsXpath:_0x21edb6,IsIFrame:_0x33b4b2,IFrameAbsXPath:_0x1018d1}=this['getCurrentLoopValue']();this['actionItem']=new actionItem_1['ActionItem'](_0x21edb6+this['actionItem']['AbsXpath'],_0x33b4b2,_0x1018d1);if(((_0x51a2ad=this['parent'])===null||_0x51a2ad===void 0x0?void 0x0:_0x51a2ad['type'])==='LoopAction'&&((_0x560e77=(_0x5831ae=this['parent'])===null||_0x5831ae===void 0x0?void 0x0:_0x5831ae['config'])===null||_0x560e77===void 0x0?void 0x0:_0x560e77['loopType'])==='FixedItem'){const _0x1ab183=this['parent']['id'],_0x551a05=this['getLoopValueArray'](_0x1ab183);(!_0x551a05||_0x551a05['length']===0x0)&&(await(0x0,Operations_1['queryElement'])(this['actionItem'],this['page'])&&this['pushLoopValue'](_0x1ab183,this['actionItem']));}}if(!this['actionItem']['AbsXpath']){this['error'](enums_1['LogKey']['Click']['Error']['NotFound'],this['name'],this['actionItem']['AbsXpath']);this['config']['useLoopItem']&&this['setIsSkipCurrentLoop'](this['getNodeId'](),!![],!![],!![]);this['finish']();return;}this['log'](enums_1['LogKey']['Click']['Begin'],this['name'],this['actionItem']['AbsXpath']);let _0x32fd37=null;if(this['useExtensionBridge']){const _0x259ff8=await this['bridgeElementExists'](this['page'],this['actionItem'],0x5dc);if(_0x259ff8===!![]){await this['execute']();return;}if(_0x259ff8===![])_0x32fd37=null;else try{_0x32fd37=await(0x0,Operations_1['getElement'])(this['actionItem'],this['page']);}catch(_0x540b59){if((0x0,Operations_1['isTransientContextError'])(_0x540b59)){await this['execute']();return;}throw _0x540b59;}}else _0x32fd37=await(0x0,Operations_1['getElement'])(this['actionItem'],this['page']);if(!_0x32fd37){this['error'](enums_1['LogKey']['Click']['Error']['NotFound'],this['name'],this['actionItem']['AbsXpath']);this['config']['useLoopItem']&&this['setIsSkipCurrentLoop'](this['getNodeId'](),!![],!![],!![]);this['finish']();return;}await this['execute']();}['onPageLoading'](_0x14ccbf){if(!this['activity']['waiting']||this['isPageLoading'])return;this['isPageLoading']=!![],this['log'](enums_1['LogKey']['Click']['NewWindow']['Loading'],this['name'],_0x14ccbf);}async['onPageLoaded'](_0xe205bd,_0x2330db){if(!this['activity']['waiting']||!this['isPageLoading']||this['isPageLoaded'])return;this['isPageLoaded']=!![];_0x2330db?this['error'](enums_1['LogKey']['Click']['Error']['Timeout'],this['name'],_0xe205bd):this['log'](enums_1['LogKey']['Click']['NewWindow']['Success'],this['name'],_0xe205bd);await this['checkPause'](),await this['waitRequest']();const _0x834928=await this['checkRetry']();if(_0x834928){this['config']['timeInterval']>0x0&&(await this['sleep'](this['config']['timeInterval']*0x3e8),await this['checkPause']());await this['switchIP'](this['page']),this['switchUA'](),this['execute']();return;}await this['scroll'](),this['finish']();}}exports['default']=ClickAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var __importDefault=this&&this['__importDefault']||function(_0x149074){return _0x149074&&_0x149074['__esModule']?_0x149074:{'default':_0x149074};};Object['defineProperty'](exports,'__esModule',{'value':!![]});const enums_1=require('../enums'),BaseAction_1=__importDefault(require('./BaseAction'));class ConditionAction extends BaseAction_1['default']{async['wait'](){if(this['getIsSkipCurrentLoop']()||this['getIsSkipActionUtilNextLoop'](this['getNodeId']())){this['finish']();return;}await super['wait'](!![]),this['log'](enums_1['LogKey']['Condition']['Begin'],this['name']),this['finish']();}}exports['default']=ConditionAction;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const BaseAction_1 = __importDefault(require("./BaseAction"));
|
|
7
|
+
class EmptyAction extends BaseAction_1.default {
|
|
8
|
+
async wait() {
|
|
9
|
+
this.finish();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = EmptyAction;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import EnterCaptchaConfig from '../configs/EnterCaptchaConfig';
|
|
2
|
+
import BaseAction from './BaseAction';
|
|
3
|
+
export default class EnterCaptchaAction extends BaseAction {
|
|
4
|
+
config: EnterCaptchaConfig;
|
|
5
|
+
private retryTimes;
|
|
6
|
+
executeTimeMax: number;
|
|
7
|
+
isCaptchaSuccess: boolean;
|
|
8
|
+
private page;
|
|
9
|
+
private createMapping;
|
|
10
|
+
private siteKeyExtractors;
|
|
11
|
+
private captchaSolvers;
|
|
12
|
+
private tokenInjectors;
|
|
13
|
+
private callbackTriggers;
|
|
14
|
+
/**
|
|
15
|
+
* 创建验证码上下文,供各 Solver 使用
|
|
16
|
+
*/
|
|
17
|
+
private createContext;
|
|
18
|
+
private processCaptchaWithType;
|
|
19
|
+
private isStringKeyCaptcha;
|
|
20
|
+
private isObjectKeyCaptcha;
|
|
21
|
+
protected parseConfig(config: any): EnterCaptchaConfig;
|
|
22
|
+
private capachaSuccess;
|
|
23
|
+
/** 注 验证码接口获取到的captcha结果可能会是null,提交这个null值的时候会报错 */
|
|
24
|
+
wait(): Promise<void>;
|
|
25
|
+
private solveKeyBasedCaptcha;
|
|
26
|
+
private extractCaptchaSiteKey;
|
|
27
|
+
private applyCaptchaToken;
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var __importDefault=this&&this['__importDefault']||function(_0x517880){return _0x517880&&_0x517880['__esModule']?_0x517880:{'default':_0x517880};};Object['defineProperty'](exports,'__esModule',{'value':!![]});const EnterCaptchaConfig_1=__importDefault(require('../configs/EnterCaptchaConfig')),enums_1=require('../enums'),BaseAction_1=__importDefault(require('./BaseAction')),types_1=require('../solvers/captcha/types'),ImageCaptchaSolver_1=require('../solvers/captcha/ImageCaptchaSolver'),RecaptchaSolver_1=require('../solvers/captcha/RecaptchaSolver'),HCaptchaSolver_1=require('../solvers/captcha/HCaptchaSolver'),SliderCaptchaSolver_1=require('../solvers/captcha/SliderCaptchaSolver'),ClickCaptchaSolver_1=require('../solvers/captcha/ClickCaptchaSolver');class EnterCaptchaAction extends BaseAction_1['default']{constructor(){super(...arguments),this['retryTimes']=0x0,this['executeTimeMax']=-0x1,this['isCaptchaSuccess']=![],this['siteKeyExtractors']={...this['createMapping']([{'types':types_1['CAPTCHA_FAMILIES']['RECAPTCHA_V2'],'handler':()=>(0x0,RecaptchaSolver_1['extractReCaptchaSiteKey'])(this['page'])},{'types':types_1['CAPTCHA_FAMILIES']['HCAPTCHA'],'handler':()=>(0x0,HCaptchaSolver_1['extractHCaptchaSiteKey'])(this['page'])}]),...this['createMapping']([{'types':types_1['CAPTCHA_FAMILIES']['RECAPTCHA_V3'],'handler':()=>(0x0,RecaptchaSolver_1['extractReCaptchav3SiteKey'])(this['page'])}])},this['captchaSolvers']=this['createMapping']([{'types':types_1['CAPTCHA_FAMILIES']['IMAGE'],'handler':()=>(0x0,ImageCaptchaSolver_1['solveImageCaptcha'])(this['createContext']())},{'types':types_1['CAPTCHA_FAMILIES']['KEY_BASED'],'handler':()=>this['solveKeyBasedCaptcha']()},{'types':types_1['CAPTCHA_FAMILIES']['SLIDER'],'handler':()=>(0x0,SliderCaptchaSolver_1['solveSliderCaptcha'])(this['createContext']())},{'types':types_1['CAPTCHA_FAMILIES']['CLICK'],'handler':()=>(0x0,ClickCaptchaSolver_1['solveClickCaptcha'])(this['createContext']())}]),this['tokenInjectors']=this['createMapping']([{'types':types_1['CAPTCHA_FAMILIES']['RECAPTCHA_V2'],'handler':_0x4e0047=>(0x0,RecaptchaSolver_1['injectReCaptchaToken'])(this['page'],_0x4e0047)},{'types':types_1['CAPTCHA_FAMILIES']['HCAPTCHA'],'handler':_0x2e0bef=>(0x0,HCaptchaSolver_1['injectHCaptchaToken'])(this['page'],_0x2e0bef)},{'types':types_1['CAPTCHA_FAMILIES']['RECAPTCHA_V3'],'handler':_0x49854a=>(0x0,RecaptchaSolver_1['injectReCaptchaV3Token'])(this['page'],_0x49854a)}]),this['callbackTriggers']=this['createMapping']([{'types':[enums_1['LocalCaptchaType']['reCAPTCHA_V2_Callback'],enums_1['LocalCaptchaType']['ReCAPTCHA_V3'],enums_1['LocalCaptchaType']['reCAPTCHA_V3_Callback']],'handler':_0x5e7e7c=>(0x0,RecaptchaSolver_1['triggerReCaptchaCallback'])(this['page'],_0x5e7e7c)},{'types':[enums_1['LocalCaptchaType']['HCaptcha_Callback']],'handler':_0x2d9c5e=>(0x0,HCaptchaSolver_1['triggerHCaptchaCallback'])(this['page'],_0x2d9c5e)}]);}['createMapping'](_0x828d72){const _0x2e0493={};return _0x828d72['forEach'](({types:_0x19aab0,handler:_0x554efb})=>{_0x19aab0['forEach'](_0x353283=>{_0x2e0493[_0x353283]=_0x554efb;});}),_0x2e0493;}['createContext'](){const _0x430627=this;return{'page':this['page'],'config':this['config'],get 'retryTimes'(){return _0x430627['retryTimes'];},set 'retryTimes'(_0x5b67ef){_0x430627['retryTimes']=_0x5b67ef;},get 'isCaptchaSuccess'(){return _0x430627['isCaptchaSuccess'];},set 'isCaptchaSuccess'(_0x2a0a15){_0x430627['isCaptchaSuccess']=_0x2a0a15;},'name':this['name'],'sleep':_0x438887=>this['sleep'](_0x438887),'checkPause':()=>this['checkPause'](),'log':(_0x41fdbe,..._0x58dcc2)=>this['log'](_0x41fdbe,..._0x58dcc2),'error':(_0x388015,..._0x982dbf)=>this['error'](_0x388015,..._0x982dbf),'resource':(_0x8f93ea,..._0x2dbd3a)=>this['resource'](_0x8f93ea,..._0x2dbd3a),'capachaSuccess':()=>this['capachaSuccess'](),'getCaptchaToken':_0x5e51fd=>this['getCaptchaToken'](_0x5e51fd)};}async['processCaptchaWithType'](_0x26782a){const _0x567e4b=this['captchaSolvers'][_0x26782a];if(_0x567e4b)await _0x567e4b();else{}}['isStringKeyCaptcha'](_0x1ad7b4){return[...types_1['CAPTCHA_FAMILIES']['RECAPTCHA_V2'],...types_1['CAPTCHA_FAMILIES']['HCAPTCHA']]['includes'](_0x1ad7b4);}['isObjectKeyCaptcha'](_0x306354){return types_1['CAPTCHA_FAMILIES']['RECAPTCHA_V3']['includes'](_0x306354);}['parseConfig'](_0x412d10){return new EnterCaptchaConfig_1['default'](_0x412d10);}async['capachaSuccess'](){let _0x55a2e2=![];try{if(this['config']['capachaFailureElementType']==enums_1['CaptchaFailureElementType']['Text']){if(this['config']['failureText']){await this['sleep'](0x3e8);let _0x37868d=await this['page']['evaluate'](()=>{return document['documentElement']['innerText'];});_0x55a2e2=_0x37868d&&_0x37868d['indexOf'](this['config']['failureText'])>-0x1;}}else{let _0x46f2b8,_0x11b103=this['config']['failureXPath'];if(!_0x11b103['IsIFrame'])_0x46f2b8=await this['page']['$']('::-p-xpath('+_0x11b103['AbsXpath']+')');else{const _0x151f02=await this['page']['$']('::-p-xpath('+_0x11b103['IFrameAbsXPath']+')'),_0x56a8f6=await _0x151f02['contentFrame']();_0x46f2b8=await _0x56a8f6['$']('::-p-xpath('+_0x11b103['AbsXpath']+')');}_0x55a2e2=!!_0x46f2b8;}}catch(_0x48cffd){await this['checkPause'](),_0x55a2e2=!![];}return this['isCaptchaSuccess']=!_0x55a2e2,!_0x55a2e2;}async['wait'](){if(this['getIsSkipCurrentLoop']()||this['getIsSkipActionUtilNextLoop'](this['getNodeId']())){this['finish']();return;}await super['wait'](),this['resource'](enums_1['LogKey']['EnterCapacha']['Begin'],this['name']),this['resource'](enums_1['LogKey']['EnterCapacha']['Action'],this['name']),this['page']=await this['getCurrentPage'](),await this['processCaptchaWithType'](this['config']['capachaType']),this['log'](enums_1['LogKey']['EnterCapacha']['Complete'],this['name']),this['finish']();}async['solveKeyBasedCaptcha'](){const _0x27b63d=await this['extractCaptchaSiteKey'](),_0x375f33=this['page']['url'](),_0x5d2fb2={'captchaType':this['config']['capachaType'],'url':_0x375f33};if(this['isStringKeyCaptcha'](this['config']['capachaType']))typeof _0x27b63d==='string'&&(_0x5d2fb2['key']=_0x27b63d);else this['isObjectKeyCaptcha'](this['config']['capachaType'])&&(_0x27b63d&&typeof _0x27b63d==='object'&&'key'in _0x27b63d&&(_0x5d2fb2['key']=_0x27b63d['key'],_0x5d2fb2['action']=_0x27b63d['action']));if(!_0x5d2fb2['key'])return;const _0x192bb4=await this['getCaptchaToken'](_0x5d2fb2);await this['applyCaptchaToken'](_0x192bb4);}async['extractCaptchaSiteKey'](){const _0x44a06a=this['siteKeyExtractors'][this['config']['capachaType']];if(_0x44a06a)return await _0x44a06a();return'';}async['applyCaptchaToken'](_0x8c882){const _0x3f7368=this['tokenInjectors'][this['config']['capachaType']];_0x3f7368&&await _0x3f7368(_0x8c882||'');const _0x16d6fa=this['callbackTriggers'][this['config']['capachaType']];_0x16d6fa&&await _0x16d6fa(_0x8c882||'');}}exports['default']=EnterCaptchaAction;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import EnterTextConfig from '../configs/EnterTextConfig';
|
|
2
|
+
import BaseAction from './BaseAction';
|
|
3
|
+
export default class EnterTextAction extends BaseAction {
|
|
4
|
+
config: EnterTextConfig;
|
|
5
|
+
private page;
|
|
6
|
+
private buildInputDebugContext;
|
|
7
|
+
/**
|
|
8
|
+
* 输入模式优先级:
|
|
9
|
+
* 1. 单个输入框显式配置
|
|
10
|
+
* 2. 步骤级默认配置
|
|
11
|
+
* 3. 自动推断:密码框走 type,普通输入走 fill
|
|
12
|
+
*/
|
|
13
|
+
private resolveInputMode;
|
|
14
|
+
private normalizeBridgeInputReason;
|
|
15
|
+
private enterTextByBridge;
|
|
16
|
+
private enterTextByPuppeteer;
|
|
17
|
+
private enterText;
|
|
18
|
+
protected parseConfig(config: any): EnterTextConfig;
|
|
19
|
+
wait(): Promise<void>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var __importDefault=this&&this['__importDefault']||function(_0x153c65){return _0x153c65&&_0x153c65['__esModule']?_0x153c65:{'default':_0x153c65};};Object['defineProperty'](exports,'__esModule',{'value':!![]});const EnterTextConfig_1=__importDefault(require('../configs/EnterTextConfig')),enums_1=require('../enums'),BaseAction_1=__importDefault(require('./BaseAction')),Operations_1=require('../utils/Operations');class EnterTextAction extends BaseAction_1['default']{['buildInputDebugContext'](_0xc18d3f,_0x152e0a,_0x2773bc,_0xc31ed2){return'bridge-input-debug\x20tabId='+(_0x2773bc!==null&&_0x2773bc!==void 0x0?_0x2773bc:'unknown')+'\x20xpath='+_0xc18d3f['AbsXpath']+'\x20autoSubmit='+_0x152e0a+'\x20inputMode='+(_0xc31ed2!==null&&_0xc31ed2!==void 0x0?_0xc31ed2:'fill');}['resolveInputMode'](_0x584c75){return _0x584c75['InputMode']||this['config']['inputMode']||(_0x584c75['IsPassword']||this['config']['isPassword']?'type':'fill');}['normalizeBridgeInputReason'](_0x232c2f){const _0x3af8b3=_0x232c2f instanceof Error?_0x232c2f['message']:String(_0x232c2f);if(_0x3af8b3['includes']('No\x20extension\x20connected'))return{'reasonCode':'no_extension','reasonDetail':_0x3af8b3};if(_0x3af8b3['includes']('Command\x20timeout'))return{'reasonCode':'command_timeout','reasonDetail':_0x3af8b3};if(_0x3af8b3['includes']('Element\x20not\x20found'))return{'reasonCode':'element_not_found','reasonDetail':_0x3af8b3};if(_0x232c2f instanceof Error)return{'reasonCode':'command_failed','reasonDetail':_0x3af8b3};return{'reasonCode':'unknown','reasonDetail':_0x3af8b3};}async['enterTextByBridge'](_0x4a15e8,_0x222afd){var _0x14cc67,_0x2aa6a2,_0x16954e;if(!this['useExtensionBridge'])return![];const _0x2c7f9f=await this['getTabIdForPage'](this['page']);if(_0x2c7f9f===undefined)return![];const _0x6d0bb=this['resolveInputMode'](_0x4a15e8),_0x1d6a82=this['buildInputDebugContext'](_0x4a15e8,this['config']['autoSubmit'],_0x2c7f9f,_0x6d0bb);try{const _0x542dbc=await this['browserProxy']['extensionBridge']['sendActionCommand']({'action':'input','tabId':_0x2c7f9f,'frame':_0x4a15e8['IsIFrame']?{'isIframe':!![],'iframeXpath':_0x4a15e8['IFrameAbsXPath']}:{'isIframe':![]},'target':{'type':'xpath','xpath':_0x4a15e8['AbsXpath']},'payload':{'text':_0x222afd,'mode':_0x6d0bb,'submit':this['config']['autoSubmit']?'enter':'none'}});if(!_0x542dbc['success'])throw new Error('error'in _0x542dbc?_0x542dbc['error']:'bridge\x20input\x20failed');const _0x35842e=_0x542dbc,_0x223ffd=_0x35842e['data'];return this['debug']('bridge\x20input\x20success\x20'+_0x1d6a82+'\x20bridgeState=success\x20submitState='+((_0x223ffd===null||_0x223ffd===void 0x0?void 0x0:_0x223ffd['submitted'])?'submitted':'skipped')+'\x20submitMode='+((_0x14cc67=_0x223ffd===null||_0x223ffd===void 0x0?void 0x0:_0x223ffd['submitMode'])!==null&&_0x14cc67!==void 0x0?_0x14cc67:this['config']['autoSubmit']?'enter':'none')+'\x20inputMode='+((_0x2aa6a2=_0x223ffd===null||_0x223ffd===void 0x0?void 0x0:_0x223ffd['inputMode'])!==null&&_0x2aa6a2!==void 0x0?_0x2aa6a2:'native-setter')+'\x20valueLength='+((_0x16954e=_0x223ffd===null||_0x223ffd===void 0x0?void 0x0:_0x223ffd['valueLength'])!==null&&_0x16954e!==void 0x0?_0x16954e:_0x222afd['length'])),!![];}catch(_0x2aa3ca){const {reasonCode:_0x4a4b23,reasonDetail:_0x13063f}=this['normalizeBridgeInputReason'](_0x2aa3ca);this['debug']('bridge\x20input\x20failed\x20'+_0x1d6a82+'\x20bridgeState=failed\x20submitState=unknown\x20reason='+_0x4a4b23+'\x20detail='+_0x13063f);throw _0x2aa3ca;}}async['enterTextByPuppeteer'](_0x4dfc41,_0x3aa26a,_0x5d4650){const _0x3dc390=this['resolveInputMode'](_0x4dfc41),_0x2959b2=await this['locator'](this['page'],_0x4dfc41);if(_0x3dc390==='native-setter')await(0x0,Operations_1['processElement'])(_0x4dfc41,this['page'],'$eval',(_0x56c831,_0x59df6d)=>{var _0xcc066,_0x122e09;const _0x2f9f0a=((_0xcc066=Object['getOwnPropertyDescriptor'](HTMLInputElement['prototype'],'value'))===null||_0xcc066===void 0x0?void 0x0:_0xcc066['set'])||((_0x122e09=Object['getOwnPropertyDescriptor'](HTMLTextAreaElement['prototype'],'value'))===null||_0x122e09===void 0x0?void 0x0:_0x122e09['set']);_0x2f9f0a?_0x2f9f0a['call'](_0x56c831,_0x59df6d||''):_0x56c831['value']=_0x59df6d||'',_0x56c831['dispatchEvent'](new Event('input',{'bubbles':!![]})),_0x56c831['dispatchEvent'](new Event('change',{'bubbles':!![]}));},_0x3aa26a);else{if(_0x3dc390==='type'){const _0x483f58=await(0x0,Operations_1['queryElement'])(_0x4dfc41,this['page']);if(!_0x483f58)throw new Error('Element\x20not\x20found:\x20'+_0x4dfc41['AbsXpath']);await _0x483f58['click']({'clickCount':0x3}),await this['page']['keyboard']['press']('Backspace'),await _0x483f58['type'](_0x3aa26a);}else await _0x2959b2['click']({'clickCount':0x3}),await _0x2959b2['fill'](_0x3aa26a);}await super['waitAfter']();if(!this['config']['autoSubmit'])return;if(_0x5d4650===null||_0x5d4650===void 0x0?void 0x0:_0x5d4650['waitNavigationOnSubmit']){await Promise['allSettled']([this['page']['waitForNavigation']({'waitUntil':'load','timeout':0xbb8}),this['page']['keyboard']['press']('Enter')]);return;}await this['page']['keyboard']['press']('Enter');}async['enterText'](_0x37b28a,_0x14bd2d,_0x13d450){const _0x3e1bb4=await this['enterTextByBridge'](_0x37b28a,_0x14bd2d);if(_0x3e1bb4)return;await this['enterTextByPuppeteer'](_0x37b28a,_0x14bd2d,_0x13d450);}['parseConfig'](_0x2fd7f3){return new EnterTextConfig_1['default'](_0x2fd7f3);}async['wait'](){if(this['getIsSkipCurrentLoop']()||this['getIsSkipActionUtilNextLoop'](this['getNodeId']())){this['finish']();return;}await super['wait'](),this['log'](enums_1['LogKey']['EnterText']['Begin'],this['name']),this['page']=await this['getCurrentPage']();try{if(this['config']['inputElementXPaths']&&this['config']['inputElementXPaths']['length']!==0x0)for(const _0xc04a24 in this['config']['inputElementXPaths']){const _0x34c08d=this['config']['inputElementXPaths'][_0xc04a24];let _0x4b10fe='';if(!this['config']['useLoopItem'])_0x4b10fe=_0x34c08d['InputText']||'';else{const _0x38c4dc=this['getCurrentLoopValue']();if(typeof _0x38c4dc!=='string'){this['error'](enums_1['LogKey']['EnterText']['Error']['NotString'],this['name']),this['finish']();return;}const _0x17bec4=_0x38c4dc['split'](';');_0x4b10fe=(_0x17bec4?_0x17bec4[_0x34c08d['InputTextCol']-0x1]:'')||'';}_0x4b10fe&&await this['enterText'](_0x34c08d,_0x4b10fe+'',{'waitNavigationOnSubmit':!![]}),this['log'](enums_1['LogKey']['EnterText']['Action'],this['name'],_0x4b10fe);}else{if(this['config']['elementXPath']){const _0x1072ca=this['config']['useLoopItem']?this['getCurrentLoopValue']():this['config']['textToSet'];if(typeof _0x1072ca!=='string'){this['error'](enums_1['LogKey']['EnterText']['Error']['NotString'],this['name']),this['finish']();return;}_0x1072ca&&await this['enterText'](this['config']['elementXPath'],_0x1072ca+'');}}}catch(_0x272980){console['log']('enter\x20text\x20error',_0x272980);}await this['checkPause'](),this['config']['autoSubmit']&&(this['log'](enums_1['LogKey']['EnterText']['Enter'],this['name']),this['config']['autoSubmitTimeout']>0x0&&(await this['sleep'](this['config']['autoSubmitTimeout']*0x3e8),await this['checkPause']()),await this['scroll']()),this['finish']();}}exports['default']=EnterTextAction;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import ExtractDataConfig from '../configs/ExtractDataConfig';
|
|
2
|
+
import { ExtractTextType } from '../enums';
|
|
3
|
+
import { ActionItem } from '../models/actionItem';
|
|
4
|
+
import { ExtractItem } from '../models/extractItem';
|
|
5
|
+
import { ExtractTriggerStatus, Trigger } from '../models/trigger';
|
|
6
|
+
import BaseAction from './BaseAction';
|
|
7
|
+
export default class ExtractDataAction extends BaseAction {
|
|
8
|
+
config: ExtractDataConfig;
|
|
9
|
+
private page;
|
|
10
|
+
private fileDownloader;
|
|
11
|
+
private buildBridgeExtractPayload;
|
|
12
|
+
private invokeBridgeExtractFunc;
|
|
13
|
+
protected parseConfig(config: any): ExtractDataConfig;
|
|
14
|
+
private isRowEmpty;
|
|
15
|
+
wait(): Promise<void>;
|
|
16
|
+
private getFormatDateTime;
|
|
17
|
+
private getTriggeredStatus;
|
|
18
|
+
getTriggerStatus(singleExecution: boolean, triggers: Trigger[], extractData: any): Promise<ExtractTriggerStatus[]>;
|
|
19
|
+
/**
|
|
20
|
+
* 新:返回最近一次打开网页使用的链接
|
|
21
|
+
*
|
|
22
|
+
* 旧:
|
|
23
|
+
* 1、提取离当前步骤(提取数据步骤)最近的循环网址列表的 url
|
|
24
|
+
* 2、循环网址外的提取数据,提取最外层的打开网页的 url
|
|
25
|
+
*/
|
|
26
|
+
private getTaskSourceUrl;
|
|
27
|
+
checkConformTrigger(trigger: Trigger, kvMap: object): Promise<boolean>;
|
|
28
|
+
private invokeBrowserExtractFunc;
|
|
29
|
+
browerExtractText(textItem: ExtractItem, baseXPath: string, type: ExtractTextType): Promise<string>;
|
|
30
|
+
findElement(absXpath: string, backUpAbsXpath: string, useRelativeXPath: boolean, baseXPath: string, relativeXpath: string, backUpRelativeXPath: string, isFrame: boolean, iframeXpath: string, useBackupIframePath: boolean, backUpIframeXPath: string, useBackupPath: boolean, useBackupRelativePath: boolean): Promise<ActionItem | undefined>;
|
|
31
|
+
private ExtractTextIntemInner;
|
|
32
|
+
private generateEmptyXML;
|
|
33
|
+
private skipLoop;
|
|
34
|
+
/**
|
|
35
|
+
* 格式化文件大小
|
|
36
|
+
* @param bytes 字节数
|
|
37
|
+
* @returns 格式化后的文件大小字符串
|
|
38
|
+
*/
|
|
39
|
+
private formatFileSize;
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var __importDefault=this&&this['__importDefault']||function(_0x41eec2){return _0x41eec2&&_0x41eec2['__esModule']?_0x41eec2:{'default':_0x41eec2};};Object['defineProperty'](exports,'__esModule',{'value':!![]});const moment_1=__importDefault(require('moment')),xmlbuilder_1=__importDefault(require('xmlbuilder')),ExtractDataConfig_1=__importDefault(require('../configs/ExtractDataConfig')),enums_1=require('../enums'),actionItem_1=require('../models/actionItem'),elementNotFoundError_1=require('../models/elementNotFoundError'),extractTemplate_1=require('../models/extractTemplate'),trigger_1=require('../models/trigger'),utils_1=require('../utils'),DateTimeFormatHelper_1=__importDefault(require('../utils/DateTimeFormatHelper')),BaseAction_1=__importDefault(require('./BaseAction')),lodash_1=require('lodash'),Operations_1=require('../utils/Operations'),FileDownloader_1=require('../utils/FileDownloader'),xmlNameRegexs=[/^([:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])([\x2D\.0-:A-Z_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/,/[:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF]/,/[^\x2D\.0-:A-Z_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\uD800-\uDB7F\uDC00-\uDFFF]/g],xmlValueRegex=/[\u0000-\u0008\u000B\u000C\u000E-\u001F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g;class ExtractDataAction extends BaseAction_1['default']{constructor(){super(...arguments),this['fileDownloader']=null;}['buildBridgeExtractPayload'](_0x498fde,_0x276648){switch(_0x498fde){case'ExtractText':case'ExtractSelectText':return{'mode':'text'};case'ExtractHtml':return{'mode':'html'};case'ExtractOuterHtml':return{'mode':'outer-html'};case'ExtractHref':return{'mode':'href'};case'ExtractSrc':return{'mode':'src'};case'ExtractValue':return{'mode':'value'};case'ExtractCustomizeField':if(!_0x276648)return undefined;return{'mode':'attribute','attributeName':_0x276648};default:return undefined;}}async['invokeBridgeExtractFunc'](_0x133217,_0x519c8a,_0x370b9c){if(!this['useExtensionBridge']||!(_0x133217===null||_0x133217===void 0x0?void 0x0:_0x133217['AbsXpath']))return undefined;const _0x5ef139=this['buildBridgeExtractPayload'](_0x519c8a,_0x370b9c);if(!_0x5ef139)return undefined;const _0x278bb6=await this['getTabIdForPage'](this['page']);if(_0x278bb6===undefined)return undefined;const _0x3f2846=await this['browserProxy']['extensionBridge']['sendActionCommand']({'action':'extract','tabId':_0x278bb6,'frame':_0x133217['IsIFrame']?{'isIframe':!![],'iframeXpath':_0x133217['IFrameAbsXPath']}:{'isIframe':![]},'target':{'type':'xpath','xpath':_0x133217['AbsXpath']},'payload':_0x5ef139});if(!_0x3f2846['success'])throw new Error('error'in _0x3f2846?_0x3f2846['error']:'bridge\x20extract\x20failed');const _0x12e3a7=_0x3f2846['data'];return typeof(_0x12e3a7===null||_0x12e3a7===void 0x0?void 0x0:_0x12e3a7['value'])==='string'?_0x12e3a7['value']:'';}['parseConfig'](_0x4ec050){return new ExtractDataConfig_1['default'](_0x4ec050,this['activity']['activity']['extensionElements']);}['isRowEmpty'](_0x104743){let _0x32a95d=!![];for(const _0x4edcd6 of Object['keys'](_0x104743)){if(_0x104743[_0x4edcd6]){_0x32a95d=![];break;}}return _0x32a95d;}async['wait'](){var _0x2d883b,_0x32a0bd,_0x56e06f,_0x2bd06c;if(this['getIsSkipCurrentLoop']()||this['getIsSkipActionUtilNextLoop'](this['getNodeId']())){this['finish']();return;}this['page']=await this['getCurrentPage']();this['browserProxy']['navigateType']!=='OpenJson'&&await super['wait']();let _0x173a57={},_0x1f1522;if(this['config']['useLoopItem']){_0x1f1522=this['getCurrentLoopValue']();if(!_0x1f1522){console['warn']('ExtractDataAction\x20missing\x20loopValue,\x20skip\x20current\x20execution',{'nodeId':this['getNodeId'](),'actionId':this['id'],'actionName':this['name'],'skipCurrentLoop':this['getIsSkipCurrentLoop'](),'skipActionUntilNextLoop':this['getIsSkipActionUtilNextLoop'](this['getNodeId']())}),this['finish']();return;}}const _0x47a728=this['config']['triggers'];if(this['browserProxy']['navigateType']=='OpenJson'){const _0x1c91e3=new extractTemplate_1['ExtractTemplate']();_0x1c91e3['items']=this['config']['extractTemplate'];const _0x1d31b3='',_0x13057c=this['browserProxy']['jsonParser'],_0x7ea784=await _0x13057c['extractFromTemplate'](_0x1c91e3,_0x1f1522?_0x1f1522['AbsXpath']:'',_0x173a57,_0x1d31b3);this['isRowEmpty'](_0x173a57)?this['error'](enums_1['LogKey']['ExtractData']['Error']['Empty'],this['name']):this['log'](enums_1['LogKey']['ExtractData']['Success'],this['name']);const _0x1eb58f=await this['getTriggeredStatus'](_0x47a728,_0x173a57);switch(_0x1eb58f['status']){case trigger_1['ExtractTriggerStatus']['NotSave']:this['log'](enums_1['LogKey']['ExtractData']['Trigger']['NotSave'],this['name'],_0x1eb58f['name']),this['setIsSkipActionUtilNextLoop'](this['getNodeId'](),!![]);break;case trigger_1['ExtractTriggerStatus']['BreakLoop']:this['log'](enums_1['LogKey']['ExtractData']['Trigger']['BreakLoop'],this['name'],_0x1eb58f['name']),this['skipLoop'](_0x1eb58f['loopLevel']);break;case trigger_1['ExtractTriggerStatus']['EndWorkflow']:this['log'](enums_1['LogKey']['ExtractData']['Trigger']['EndWorkflow'],this['name'],_0x1eb58f['name']);break;case trigger_1['ExtractTriggerStatus']['UploadExtractedData']:const _0xf089fa={'xml':_0x7ea784,'loopTimes':0x0,'id':this['id']};this['emit']('extract-data-completed',_0xf089fa);break;}this['finish']();return;}let _0x2e9581=![],_0x495547;const _0x4d1844=xmlbuilder_1['default']['create']('Root');let _0x5bf968='';for(const _0x24e856 of this['config']['extractTemplate']){if(_0x2e9581){_0x173a57={};break;}if(_0x24e856['type']=='ExtractGroupItem')continue;this['config']['useLoopItem']?(_0x495547=new actionItem_1['ActionItem'](_0x1f1522['AbsXpath'],_0x1f1522['IsIFrame'],_0x1f1522['IFrameAbsXPath']),this['config']['pageIndex']===((_0x2d883b=this['parent'])===null||_0x2d883b===void 0x0?void 0x0:_0x2d883b['config']['pageIndex'])&&((((_0x32a0bd=this['parent'])===null||_0x32a0bd===void 0x0?void 0x0:_0x32a0bd['config']['loopType'])==='FixedItemList'||((_0x56e06f=this['parent'])===null||_0x56e06f===void 0x0?void 0x0:_0x56e06f['config']['loopType'])==='FixedItem'||((_0x2bd06c=this['parent'])===null||_0x2bd06c===void 0x0?void 0x0:_0x2bd06c['config']['loopType'])==='VarilableItemList')&&(_0x24e856['isIFrame']=_0x24e856['useRelativeXPath']?_0x1f1522['IsIFrame']:_0x24e856['isIFrame'],_0x24e856['iFrameXpath']=_0x24e856['useRelativeXPath']?_0x1f1522['IFrameAbsXPath']:_0x24e856['iFrameXpath']))):_0x495547=new actionItem_1['ActionItem'](_0x24e856['absXpath'],_0x24e856['isIFrame'],_0x24e856['iFrameXpath']);const _0x5978d3=_0x495547['AbsXpath'];let _0x58c6e4=_0x24e856['header'],_0x265316='';try{_0x265316=await this['ExtractTextIntemInner'](_0x24e856,_0x495547,_0x5978d3,_0x5bf968);if(this['browserProxy']['downloadFolderPath']&&_0x24e856['IsDownloadFile']&&!(0x0,utils_1['isNullOrEmpty'])(_0x265316)){const _0x3c519b={'url':_0x265316,'filePath':'','fileSize':0x0,'status':'downloading','fieldName':_0x24e856['header'],'rowUuid':''};this['emit']('download-file',_0x3c519b);let _0x23ebc7=0x0;try{!this['fileDownloader']&&(this['fileDownloader']=new FileDownloader_1['FileDownloader'](this['page'],{'downloadPath':this['browserProxy']['threeFolderPath']||this['browserProxy']['downloadFolderPath'],'fieldName':_0x24e856['header'],'logCallback':_0x1008e0=>this['log'](enums_1['LogKey']['ExtractData']['Success'],_0x1008e0)}));const _0x14f771=await this['fileDownloader']['downloadFile'](_0x265316,_0x24e856);_0x23ebc7=_0x14f771['fileSize'];const _0x46be61={'url':_0x265316,'filePath':_0x14f771['filePath'],'fileSize':_0x14f771['fileSize'],'status':'success','fieldName':_0x24e856['header'],'rowUuid':''};this['emit']('download-file',_0x46be61),this['log'](enums_1['LogKey']['ExtractData']['Success'],'文件已下载到:\x20'+_0x14f771['filePath']),_0x5bf968=_0x14f771['filePath'];}catch(_0x72cb98){const _0x227697=_0x72cb98 instanceof Error?_0x72cb98['message']:String(_0x72cb98),_0x3af866={'url':_0x265316,'filePath':'','fileSize':_0x23ebc7,'status':'failed','fieldName':_0x24e856['header'],'rowUuid':'','error':_0x227697};this['emit']('download-file',_0x3af866),this['error'](enums_1['LogKey']['ExtractData']['Error']['Empty'],'下载文件失败:\x20'+_0x227697),_0x24e856['allowSkip']&&(_0x2e9581=!![]);}}}catch(_0x10596a){await this['checkPause']();if((0x0,Operations_1['isTransientContextError'])(_0x10596a))throw _0x10596a;if(_0x24e856['allowSkip'])_0x2e9581=!![];else _0x24e856['allowDefaultValue']&&(_0x265316=_0x24e856['NullValue']);}await this['checkPause']();_0x24e856['allowSkip']&&_0x265316!=null&&_0x265316===''&&(_0x2e9581=!![]);_0x173a57[_0x58c6e4]=_0x265316;const _0x1bc314={'IsAppend':_0x24e856['IsAppend']};if(!_0x58c6e4['match'](xmlNameRegexs[0x0])){while(!_0x58c6e4[0x0]['match'](xmlNameRegexs[0x1])){_0x58c6e4=_0x58c6e4['substring'](0x1);}_0x58c6e4=_0x58c6e4['replace'](xmlNameRegexs[0x2],''),_0x1bc314['realName']=_0x24e856['header'];}_0x265316=_0x265316['replace'](xmlValueRegex,''),_0x4d1844['ele'](_0x58c6e4,_0x1bc314,_0x265316);}this['isRowEmpty'](_0x173a57)?this['error'](enums_1['LogKey']['ExtractData']['Error']['Empty'],this['name']):this['log'](enums_1['LogKey']['ExtractData']['Success'],this['name']);const _0x14be69=await this['getTriggeredStatus'](_0x47a728,_0x173a57);switch(_0x14be69['status']){case trigger_1['ExtractTriggerStatus']['NotSave']:this['log'](enums_1['LogKey']['ExtractData']['Trigger']['NotSave'],this['name'],_0x14be69['name']),this['setIsSkipActionUtilNextLoop'](this['getNodeId'](),!![]);break;case trigger_1['ExtractTriggerStatus']['BreakLoop']:this['log'](enums_1['LogKey']['ExtractData']['Trigger']['BreakLoop'],this['name'],_0x14be69['name']),this['skipLoop'](_0x14be69['loopLevel']);break;case trigger_1['ExtractTriggerStatus']['EndWorkflow']:this['log'](enums_1['LogKey']['ExtractData']['Trigger']['EndWorkflow'],this['name'],_0x14be69['name']),this['emit']('stop',enums_1['RunnerStatus']['Completed']);break;case trigger_1['ExtractTriggerStatus']['UploadExtractedData']:{const _0x4b4499=_0x2e9581?this['generateEmptyXML'](this['config']['extractTemplate']):_0x4d1844['end'](),_0x36a3b1={'xml':_0x4b4499,'loopTimes':0x0,'id':this['id']};this['parent']&&this['parent']['parent']&&(_0x36a3b1['loopTimes']=this['getLoopCount'](this['parent']['parent']['id']));this['emit']('extract-data-completed',_0x36a3b1);break;}}this['finish']();}['getFormatDateTime'](_0x13c2b9,_0x5b1ae4){let _0xbe962c=(0x0,moment_1['default'])(_0x5b1ae4)['format']();return _0x13c2b9['Increase']?(_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['add'](_0x13c2b9['Year'],'y')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['add'](_0x13c2b9['Month'],'M')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['add'](_0x13c2b9['Day'],'d')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['add'](_0x13c2b9['Hour'],'h')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['add'](_0x13c2b9['Minute'],'m')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['add'](_0x13c2b9['Second'],'s')['format']()):(_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['subtract'](_0x13c2b9['Year'],'y')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['subtract'](_0x13c2b9['Month'],'M')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['subtract'](_0x13c2b9['Day'],'d')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['subtract'](_0x13c2b9['Hour'],'h')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['subtract'](_0x13c2b9['Minute'],'m')['format'](),_0xbe962c=(0x0,moment_1['default'])(_0xbe962c)['subtract'](_0x13c2b9['Second'],'s')['format']()),new Date(_0xbe962c);}async['getTriggeredStatus'](_0x3c66b1,_0x311cc0){let _0x333b84=trigger_1['ExtractTriggerStatus']['UploadExtractedData'],_0xd95548=-0x1,_0x4daad6='';if(_0x3c66b1==null||_0x3c66b1['length']==0x0)return{'status':_0x333b84,'loopLevel':_0xd95548,'name':_0x4daad6};const _0xd37ff5=[];_0x3c66b1['forEach'](_0x326362=>{_0x326362['Status']<0x64&&_0x326362['Enabled']==!![]&&_0xd37ff5['push'](_0x326362);});const _0x3237bc=await this['getTriggerStatus'](!![],_0xd37ff5,_0x311cc0);if(_0x3237bc!=null&&_0x3237bc['length']>0x0){_0x333b84=_0x3237bc[0x0];const _0x18298f=_0xd37ff5['find'](_0x33d04b=>_0x33d04b['Status']==_0x333b84);_0x4daad6=_0x18298f['Name'];if(_0x333b84==trigger_1['ExtractTriggerStatus']['BreakLoop']){if(_0x18298f)_0xd95548=_0x18298f['LoopLevel'];}}return{'status':_0x333b84,'loopLevel':_0xd95548,'name':_0x4daad6};}async['getTriggerStatus'](_0x38d110,_0x52d852,_0x2da7be){if(!_0x52d852||_0x52d852['length']==0x0)return null;const _0x650698=[];_0x38d110&&(_0x52d852=_0x52d852['sort']((_0x2a7b9f,_0x3b1fc8)=>{return-(_0x2a7b9f['Status']-_0x3b1fc8['Status']);})['sort']((_0x445670,_0x549360)=>{return-(_0x445670['Priority']-_0x549360['Priority']);}));for(const _0x3f8462 of _0x52d852){if(_0x3f8462==null||_0x3f8462['TriggerAdditionGroups']==null||_0x3f8462['TriggerAdditionGroups']['length']==0x0)continue;const _0x5e0b18=await this['checkConformTrigger'](_0x3f8462,_0x2da7be);_0x5e0b18&&_0x650698['push'](_0x3f8462['Status']);if(_0x5e0b18&&_0x38d110)break;}return _0x650698;}async['getTaskSourceUrl'](){return this['browserProxy']['navigateURL'];}async['checkConformTrigger'](_0x3c88a7,_0x374619){let _0x58ea22=![];for(const _0x1be12c of _0x3c88a7['TriggerAdditionGroups']){let _0xa5bbea=undefined;for(const _0x49268e of _0x1be12c['TriggerAdditions']){let _0x46b652=_0x374619[_0x49268e['FieldName']];if((0x0,lodash_1['isNil'])(_0x46b652))continue;let _0x37d59f=![];_0x46b652=_0x46b652['split']('')['map'](_0xca16cd=>_0xca16cd['codePointAt'](0x0)===0xa0?'\x20':_0xca16cd)['join']('');if(_0x46b652==undefined||_0x46b652==null){_0xa5bbea=_0xa5bbea==undefined?_0x37d59f:_0xa5bbea&&_0x37d59f;continue;}if(_0x49268e['Operations']['length']>0x0)for(const _0xa16e02 of _0x49268e['Operations']){_0x46b652=await _0xa16e02['caculate'](_0x46b652);}if(_0x49268e['OperatingSymbol']==trigger_1['OperatingSymbol']['DateGreaterThan']||_0x49268e['OperatingSymbol']==trigger_1['OperatingSymbol']['DateGreaterThanOrEqual']||_0x49268e['OperatingSymbol']==trigger_1['OperatingSymbol']['DateLessThan']||_0x49268e['OperatingSymbol']==trigger_1['OperatingSymbol']['DateLessThanOrEqual']){let _0x24714f=new Date();if(_0x49268e['DateTimeType']==trigger_1['DateTimeType']['CurrentTime'])_0x49268e['Content']=DateTimeFormatHelper_1['default']['format'](new Date(),'yyyy-MM-dd\x20HH:mm:ss');else{if(_0x49268e['DateTimeType']==trigger_1['DateTimeType']['ZeroPoint'])_0x49268e['Content']=DateTimeFormatHelper_1['default']['format'](new Date(),'yyyy-MM-dd\x2000:00:00');else{if(_0x49268e['FormatDateTimeType']==trigger_1['DateTimeType']['CurrentTime'])_0x24714f=this['getFormatDateTime'](_0x49268e,new Date()),_0x49268e['Content']=DateTimeFormatHelper_1['default']['format'](_0x24714f,'yyyy-MM-dd\x20HH:mm:ss');else _0x49268e['FormatDateTimeType']==trigger_1['DateTimeType']['ZeroPoint']&&(_0x24714f=this['getFormatDateTime'](_0x49268e,new Date(DateTimeFormatHelper_1['default']['format'](new Date(),'yyyy-MM-dd\x2000:00:00'))),_0x49268e['Content']=DateTimeFormatHelper_1['default']['format'](_0x24714f,'yyyy-MM-dd\x20HH:mm:ss'));}}}switch(_0x49268e['OperatingSymbol']){case trigger_1['OperatingSymbol']['StringEqual']:_0x37d59f=_0x46b652==_0x49268e['Content'];break;case trigger_1['OperatingSymbol']['StringNotEqual']:_0x37d59f=_0x46b652!=_0x49268e['Content'];break;case trigger_1['OperatingSymbol']['StringContains']:_0x37d59f=_0x46b652['indexOf'](_0x49268e['Content'])>-0x1;break;case trigger_1['OperatingSymbol']['StringNotContains']:_0x37d59f=_0x46b652['indexOf'](_0x49268e['Content'])<=-0x1;break;case trigger_1['OperatingSymbol']['IntGreaterThan']:!Number['isNaN'](_0x46b652)&&Number(_0x46b652)>Number(_0x49268e['Content'])&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['IntLessThan']:!Number['isNaN'](_0x46b652)&&Number(_0x46b652)<Number(_0x49268e['Content'])&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['IntGreaterThanOrEqual']:!Number['isNaN'](_0x46b652)&&Number(_0x46b652)>=Number(_0x49268e['Content'])&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['IntLessThanOrEqual']:!Number['isNaN'](_0x46b652)&&Number(_0x46b652)<=Number(_0x49268e['Content'])&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['StringNotEmpty']:_0x46b652!=''&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['StringEmpty']:typeof _0x46b652==='string'&&_0x46b652['trim']()===''&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['DateGreaterThan']:new Date(_0x46b652)>new Date(_0x49268e['Content'])&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['DateLessThan']:new Date(_0x46b652)<new Date(_0x49268e['Content'])&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['DateGreaterThanOrEqual']:new Date(_0x46b652)>=new Date(_0x49268e['Content'])&&(_0x37d59f=!![]);break;case trigger_1['OperatingSymbol']['DateLessThanOrEqual']:new Date(_0x46b652)<=new Date(_0x49268e['Content'])&&(_0x37d59f=!![]);break;default:break;}_0xa5bbea=_0xa5bbea==undefined?_0x37d59f:_0xa5bbea&&_0x37d59f;}_0x58ea22=_0xa5bbea==undefined?![]:_0x58ea22||_0xa5bbea;}return _0x58ea22;}async['invokeBrowserExtractFunc'](_0x295576,_0x4859e6,_0x5757d2){try{switch(_0x4859e6){case'ExtractText':if(!_0x295576['IsIFrame'])return await this['extractElementData'](_0x295576,enums_1['extractFunctions'][_0x4859e6],this['page']);return await this['extractElementData'](_0x295576,_0x55588c=>_0x55588c===null||_0x55588c===void 0x0?void 0x0:_0x55588c['textContent'],this['page']);case'ExtractHtml':return await this['extractElementData'](_0x295576,enums_1['extractFunctions'][_0x4859e6],this['page']);case'ExtractOuterHtml':return await this['extractElementData'](_0x295576,enums_1['extractFunctions'][_0x4859e6],this['page']);case'ExtractHref':return await this['extractElementData'](_0x295576,enums_1['extractFunctions'][_0x4859e6],this['page']);case'ExtractSrc':return await this['extractElementData'](_0x295576,enums_1['extractFunctions'][_0x4859e6],this['page']);case'ExtractValue':return await this['extractElementData'](_0x295576,enums_1['extractFunctions'][_0x4859e6],this['page']);case'ExtractSelectText':return await this['extractElementData'](_0x295576,enums_1['extractFunctions'][_0x4859e6],this['page']);case'ExtractCustomizeField':return await(0x0,Operations_1['processElement'])(_0x295576,this['page'],'$eval',(_0x3e5217,_0x2435ac)=>_0x3e5217['getAttribute'](_0x2435ac),_0x5757d2)||'';default:return'';}}catch(_0x1471c0){if(!(0x0,Operations_1['isTransientContextError'])(_0x1471c0))throw _0x1471c0;const _0x2c167d=await this['invokeBridgeExtractFunc'](_0x295576,_0x4859e6,_0x5757d2);if(_0x2c167d!==undefined)return _0x2c167d;throw _0x1471c0;}}async['browerExtractText'](_0x352f26,_0x24de14,_0x4a8719){const _0x2c52ee=_0x352f26['absXpath'],_0x16c513=_0x352f26['useRelativeXPath'],_0x367f31=_0x352f26['relativeXpath'],_0x3e4ec2=_0x352f26['isIFrame'],_0x28c513=_0x352f26['iFrameXpath'],_0x302665=_0x352f26['useBackupPath'],_0x1569c8=_0x352f26['useBackupIframePath'],_0x2ce476=_0x352f26['useBackupRelativePath'],_0x1bd0df=_0x352f26['backUpAbsXPath'],_0x25f276=_0x352f26['backUpRelativeXPath'],_0x562f3c=_0x352f26['backUpIframeXPath'];let _0x20f334='';if(_0x16c513&&!(0x0,utils_1['isNullOrEmpty'])(_0x24de14)){if(!(0x0,utils_1['isNullOrEmpty'])(_0x367f31)){const _0x50e6be=new actionItem_1['ActionItem'](_0x24de14+_0x367f31,_0x3e4ec2,_0x28c513);_0x20f334=await this['invokeBrowserExtractFunc'](_0x50e6be,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}else{if((0x0,utils_1['isNullOrEmpty'])(_0x367f31)&&(0x0,utils_1['isNullOrEmpty'])(_0x20f334)){const _0x101a5c=new actionItem_1['ActionItem'](_0x24de14,_0x3e4ec2,_0x28c513);_0x20f334=await this['invokeBrowserExtractFunc'](_0x101a5c,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}}if((0x0,utils_1['isNullOrEmpty'])(_0x20f334)&&_0x302665){if(!(0x0,utils_1['isNullOrEmpty'])(_0x25f276)&&_0x2ce476){const _0x11d71d=new actionItem_1['ActionItem'](_0x24de14+_0x25f276,_0x1569c8,_0x562f3c);_0x20f334=await this['invokeBrowserExtractFunc'](_0x11d71d,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}if(!(0x0,utils_1['isNullOrEmpty'])(_0x1bd0df)&&!_0x2ce476){const _0x35e460=new actionItem_1['ActionItem'](_0x1bd0df,_0x1569c8,_0x562f3c);_0x20f334=await this['invokeBrowserExtractFunc'](_0x35e460,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}}}else{if(!_0x16c513){if(!(0x0,utils_1['isNullOrEmpty'])(_0x2c52ee)){const _0x22d436=new actionItem_1['ActionItem'](_0x2c52ee,_0x3e4ec2,_0x28c513);_0x20f334=await this['invokeBrowserExtractFunc'](_0x22d436,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}if((0x0,utils_1['isNullOrEmpty'])(_0x20f334)&&_0x302665){if(!(0x0,utils_1['isNullOrEmpty'])(_0x25f276)&&_0x2ce476){const _0x237d18=new actionItem_1['ActionItem']((_0x24de14||'')+_0x25f276,_0x1569c8,_0x562f3c);_0x20f334=await this['invokeBrowserExtractFunc'](_0x237d18,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}else{if((0x0,utils_1['isNullOrEmpty'])(_0x20f334)&&(0x0,utils_1['isNullOrEmpty'])(_0x25f276)&&_0x2ce476){const _0x2fd255=new actionItem_1['ActionItem'](_0x24de14||'',_0x1569c8,_0x562f3c);_0x20f334=await this['invokeBrowserExtractFunc'](_0x2fd255,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}}if(!(0x0,utils_1['isNullOrEmpty'])(_0x1bd0df)&&!_0x2ce476){const _0xae796b=new actionItem_1['ActionItem'](_0x1bd0df,_0x1569c8,_0x562f3c);_0x20f334=await this['invokeBrowserExtractFunc'](_0xae796b,_0x4a8719);if(!(0x0,utils_1['isNullOrEmpty'])(_0x20f334))return _0x20f334;}}}}throw new elementNotFoundError_1['ElementNotFoundError']();}async['findElement'](_0x104060,_0x2c29d3,_0x387023,_0x58c145,_0x1c5bc0,_0x378918,_0x47b693,_0x19571c,_0x8e34a8,_0x31bddf,_0x4d368b,_0x21d563){let _0x259dd1;if(_0x387023&&!(0x0,utils_1['isNullOrEmpty'])(_0x58c145)){if(!(0x0,utils_1['isNullOrEmpty'])(_0x1c5bc0)){const _0x3128b4=new actionItem_1['ActionItem'](_0x58c145+_0x1c5bc0,_0x47b693,_0x19571c),_0x54b627=await(0x0,Operations_1['queryElement'])(_0x3128b4,this['page']);_0x54b627&&(_0x259dd1=_0x3128b4);}else(0x0,utils_1['isNullOrEmpty'])(_0x1c5bc0)&&!_0x259dd1&&(_0x259dd1=new actionItem_1['ActionItem'](_0x58c145,_0x47b693,_0x19571c));if(!_0x259dd1&&_0x4d368b){if(!(0x0,utils_1['isNullOrEmpty'])(_0x378918)&&_0x21d563){const _0x712730=new actionItem_1['ActionItem'](_0x58c145+_0x378918,_0x8e34a8,_0x31bddf),_0x460d97=await(0x0,Operations_1['queryElement'])(_0x712730,this['page']);_0x460d97&&(_0x259dd1=_0x712730);}if(!(0x0,utils_1['isNullOrEmpty'])(_0x2c29d3)&&!_0x21d563){const _0x14e88f=new actionItem_1['ActionItem'](_0x2c29d3,_0x8e34a8,_0x31bddf),_0x330a48=await(0x0,Operations_1['queryElement'])(_0x14e88f,this['page']);_0x330a48&&(_0x259dd1=_0x14e88f);}}}else{if(!_0x387023){if(!(0x0,utils_1['isNullOrEmpty'])(_0x104060)){const _0x5b1ba3=new actionItem_1['ActionItem'](_0x104060,_0x47b693,_0x19571c),_0x13f8a1=await(0x0,Operations_1['queryElement'])(_0x5b1ba3,this['page']);_0x13f8a1&&(_0x259dd1=_0x5b1ba3);}if(!_0x259dd1&&_0x4d368b){if(!(0x0,utils_1['isNullOrEmpty'])(_0x378918)&&_0x21d563){const _0x1a0efe=new actionItem_1['ActionItem']((_0x58c145||'')+_0x378918,_0x8e34a8,_0x31bddf),_0x41d43a=await(0x0,Operations_1['queryElement'])(_0x1a0efe,this['page']);_0x41d43a&&(_0x259dd1=_0x1a0efe);}else(0x0,utils_1['isNullOrEmpty'])(_0x378918)&&_0x21d563&&!_0x259dd1&&(_0x259dd1=new actionItem_1['ActionItem'](_0x58c145||'',_0x8e34a8,_0x31bddf));if(!(0x0,utils_1['isNullOrEmpty'])(_0x2c29d3)&&!_0x21d563){const _0x334107=new actionItem_1['ActionItem'](_0x2c29d3,_0x8e34a8,_0x31bddf),_0x42b955=await(0x0,Operations_1['queryElement'])(_0x334107,this['page']);_0x42b955&&(_0x259dd1=_0x334107);}}}}return _0x259dd1;}async['ExtractTextIntemInner'](_0x3ecf4a,_0x26b969,_0x143f95,_0x3daf4d){let _0x251a61='';switch(_0x3ecf4a['ExtractType']){case'ExtractText':_0x251a61=await this['browerExtractText'](_0x3ecf4a,_0x143f95,'ExtractText');break;case'ExtractSelectText':_0x251a61=await this['browerExtractText'](_0x3ecf4a,_0x143f95,'ExtractSelectText');break;case'ExtractHtml':_0x251a61=await this['browerExtractText'](_0x3ecf4a,_0x143f95,'ExtractHtml');break;case'ExtractOuterHtml':_0x251a61=await this['browerExtractText'](_0x3ecf4a,_0x143f95,'ExtractOuterHtml');break;case'ExtractHref':case'ExtractAudioHref':case'ExtractFileHref':case'ExtractVideoHref':case'ExtractDocumentHref':_0x251a61=await this['browerExtractText'](_0x3ecf4a,_0x143f95,'ExtractHref');break;case'ExtractSrc':case'ExtractAudioSrc':case'ExtractVideoSrc':_0x251a61=await this['browerExtractText'](_0x3ecf4a,_0x143f95,'ExtractSrc');break;case'ExtractValue':_0x251a61=await this['browerExtractText'](_0x3ecf4a,_0x143f95,'ExtractValue');break;case'ExtractOCR':break;case'ExtractCustomizeField':{const _0x441b5d=await this['findElement'](_0x3ecf4a['absXpath'],_0x3ecf4a['backUpAbsXPath'],_0x3ecf4a['useRelativeXPath'],_0x143f95,_0x3ecf4a['relativeXpath'],_0x3ecf4a['backUpRelativeXPath'],_0x3ecf4a['isIFrame'],_0x3ecf4a['iFrameXpath'],_0x3ecf4a['useBackupIframePath'],_0x3ecf4a['backUpIframeXPath'],_0x3ecf4a['useBackupPath'],_0x3ecf4a['useBackupRelativePath']);if(_0x441b5d==undefined)throw new elementNotFoundError_1['ElementNotFoundError']();_0x251a61=await this['invokeBrowserExtractFunc'](_0x441b5d,'ExtractCustomizeField',_0x3ecf4a['CustomizeField']);break;}case'ExtractPageSource':_0x251a61=await this['page']['content']();break;case'ExtractPageURL':_0x251a61=this['page']['url']();break;case'ExtractPageTitle':_0x251a61=await this['page']['title']();break;case'GenerateFixedValue':_0x251a61=_0x3ecf4a['FixedValue'];break;case'GenerateCurrentDateTime':_0x251a61=(0x0,moment_1['default'])()['format']('YYYY-MM-DD\x20HH:mm:ss.SSS');break;case'ExtractAddTaskSourceUrl':_0x251a61=await this['getTaskSourceUrl']();break;case'ExtractFileField':_0x251a61=_0x3daf4d||'';break;default:throw new elementNotFoundError_1['ElementNotFoundError']();}if(_0x251a61&&_0x3ecf4a['operations']&&_0x3ecf4a['operations']['length']>0x0)for(const _0x1a2090 of _0x3ecf4a['operations']){_0x251a61=await _0x1a2090['caculate'](_0x251a61);}return _0x251a61;}['generateEmptyXML'](_0x57c329){const _0x45640a=xmlbuilder_1['default']['create']('root');for(const _0x127a9f of _0x57c329){if(_0x127a9f['type']=='ExtractGroupItem')continue;_0x45640a['ele'](_0x127a9f['name']);}return _0x45640a['end']({'pretty':!![]});}['skipLoop'](_0x40baff){const {actions:_0x20abaa}=this['variables'],_0x2c3428=[];_0x20abaa['forEach'](_0x4f880c=>_0x4f880c['type']==='LoopAction'&&_0x2c3428['push'](_0x4f880c['id'])),_0x2c3428['reverse']();for(let _0x47f144=0x0;_0x47f144<_0x40baff+0x1;_0x47f144++){this['setIsSkipCurrentLoop'](_0x2c3428[_0x47f144],!![]);}}['formatFileSize'](_0x52776f){if(_0x52776f===0x0)return'0\x20B';const _0x27bd8c=0x400,_0x224be8=['B','KB','MB','GB','TB'],_0x198902=Math['floor'](Math['log'](_0x52776f)/Math['log'](_0x27bd8c));return Math['round'](_0x52776f/Math['pow'](_0x27bd8c,_0x198902)*0x64)/0x64+'\x20'+_0x224be8[_0x198902];}}exports['default']=ExtractDataAction;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Target } from 'puppeteer-core';
|
|
2
|
+
import LoopConfig from '../configs/LoopConfig';
|
|
3
|
+
import BaseAction from './BaseAction';
|
|
4
|
+
export default class LoopAction extends BaseAction {
|
|
5
|
+
config: LoopConfig;
|
|
6
|
+
private page;
|
|
7
|
+
private isDoneFirst;
|
|
8
|
+
private targets;
|
|
9
|
+
protected parseConfig(config: any): LoopConfig;
|
|
10
|
+
onTargetCreated: (target: Target) => void;
|
|
11
|
+
onTargetChanged: (target: Target) => void;
|
|
12
|
+
resetTarget(): void;
|
|
13
|
+
private loopElementExists;
|
|
14
|
+
wait(): Promise<void>;
|
|
15
|
+
leave(): void;
|
|
16
|
+
/** 不固定元素循环列表的采集偏移量计算 */
|
|
17
|
+
private varilableItemListCount;
|
|
18
|
+
/**
|
|
19
|
+
* 递归获取第一个(父级/爷爷级)循环节点
|
|
20
|
+
* @param action 当前节点
|
|
21
|
+
*/
|
|
22
|
+
private recursionGetParentLoopAction;
|
|
23
|
+
/**
|
|
24
|
+
* 对比指定的不固定循环列表元素是否变化
|
|
25
|
+
* @param nodeId
|
|
26
|
+
* @param loopConfig
|
|
27
|
+
*/
|
|
28
|
+
private diffSamplingElements;
|
|
29
|
+
/**
|
|
30
|
+
* 辅助判断当前循环列表所依赖的列表元素是否有增加
|
|
31
|
+
* @param loopConfig
|
|
32
|
+
*/
|
|
33
|
+
private ifNextElement;
|
|
34
|
+
/**
|
|
35
|
+
* 辅助判断字符串相似度
|
|
36
|
+
* @param s 字符串1
|
|
37
|
+
* @param t 字符串1
|
|
38
|
+
* @param f 精确度:保留几位小数
|
|
39
|
+
*/
|
|
40
|
+
private similar;
|
|
41
|
+
}
|