149 lines
3.4 KiB
TypeScript
Executable File
149 lines
3.4 KiB
TypeScript
Executable File
import type { INodeProperties } from 'n8n-workflow';
|
|
|
|
import * as click from './click.operation';
|
|
import * as fill from './fill.operation';
|
|
import * as hover from './hover.operation';
|
|
import * as scroll from './scroll.operation';
|
|
import * as type from './type.operation';
|
|
import { sessionIdField, windowIdField } from '../common/fields';
|
|
export { click, fill, hover, scroll, type };
|
|
|
|
export const description: INodeProperties[] = [
|
|
{
|
|
displayName: 'Operation',
|
|
name: 'operation',
|
|
type: 'options',
|
|
noDataExpression: true,
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['interaction'],
|
|
},
|
|
},
|
|
options: [
|
|
{
|
|
name: 'Click an Element',
|
|
value: 'click',
|
|
description: 'Execute a click on an element given a description',
|
|
action: 'Click an element',
|
|
},
|
|
{
|
|
name: 'Fill Form',
|
|
value: 'fill',
|
|
description: 'Fill a form with the provided information',
|
|
action: 'Fill form',
|
|
},
|
|
{
|
|
name: 'Hover on an Element',
|
|
value: 'hover',
|
|
description: 'Execute a hover action on an element given a description',
|
|
action: 'Hover on an element',
|
|
},
|
|
{
|
|
name: 'Scroll',
|
|
value: 'scroll',
|
|
description: 'Execute a scroll action on the page',
|
|
action: 'Scroll on page',
|
|
},
|
|
{
|
|
name: 'Type',
|
|
value: 'type',
|
|
description: 'Execute a Type action on an element given a description',
|
|
action: 'Type text',
|
|
},
|
|
],
|
|
default: 'click',
|
|
},
|
|
{
|
|
...sessionIdField,
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['interaction'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
...windowIdField,
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['interaction'],
|
|
},
|
|
},
|
|
},
|
|
...click.description,
|
|
...fill.description,
|
|
...hover.description,
|
|
...scroll.description,
|
|
...type.description,
|
|
{
|
|
displayName: 'Additional Fields',
|
|
name: 'additionalFields',
|
|
type: 'collection',
|
|
placeholder: 'Add Field',
|
|
default: {},
|
|
displayOptions: {
|
|
show: {
|
|
resource: ['interaction'],
|
|
operation: ['click', 'hover', 'type', 'scroll'],
|
|
},
|
|
},
|
|
options: [
|
|
{
|
|
displayName: 'Visual Scope',
|
|
name: 'visualScope',
|
|
type: 'options',
|
|
default: 'auto',
|
|
description: 'Defines the strategy for visual analysis of the current window',
|
|
options: [
|
|
{
|
|
name: 'Auto',
|
|
description: 'Provides the simplest out-of-the-box experience for most web pages',
|
|
value: 'auto',
|
|
},
|
|
{
|
|
name: 'Viewport',
|
|
description: 'For analysis of the current browser view only',
|
|
value: 'viewport',
|
|
},
|
|
{
|
|
name: 'Page',
|
|
description: 'For analysis of the entire page',
|
|
value: 'page',
|
|
},
|
|
{
|
|
name: 'Scan',
|
|
description:
|
|
"For a full page analysis on sites that have compatibility issues with 'Page' mode",
|
|
value: 'scan',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
displayName: 'Wait Until Event After Navigation',
|
|
name: 'waitForNavigation',
|
|
type: 'options',
|
|
default: 'load',
|
|
description:
|
|
"The condition to wait for the navigation to complete after an interaction (click, type or hover). Defaults to 'Fully Loaded'.",
|
|
options: [
|
|
{
|
|
name: 'Fully Loaded (Slower)',
|
|
value: 'load',
|
|
},
|
|
{
|
|
name: 'DOM Only Loaded (Faster)',
|
|
value: 'domcontentloaded',
|
|
},
|
|
{
|
|
name: 'All Network Activity Has Stopped',
|
|
value: 'networkidle0',
|
|
},
|
|
{
|
|
name: 'Most Network Activity Has Stopped',
|
|
value: 'networkidle2',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
];
|