sfdx-browserforce-plugin 5.1.2 → 5.2.0-next.1
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 +54 -16
- package/lib/browserforce-command.js +2 -2
- package/lib/browserforce-command.js.map +1 -1
- package/lib/browserforce.d.ts +7 -3
- package/lib/browserforce.js +57 -32
- package/lib/browserforce.js.map +1 -1
- package/lib/pages/login.d.ts +1 -1
- package/lib/pages/login.js +5 -5
- package/lib/pages/login.js.map +1 -1
- package/lib/plugins/activity-settings/index.js +9 -6
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/company-information/index.js +26 -16
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +5 -5
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.js +5 -6
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.js +68 -32
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/density-settings/index.d.ts +1 -8
- package/lib/plugins/density-settings/index.js +37 -29
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/email-deliverability/index.js +11 -8
- package/lib/plugins/email-deliverability/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.d.ts +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.js +7 -8
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/history-tracking/index.js +21 -14
- package/lib/plugins/history-tracking/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.js +16 -12
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.d.ts +2 -2
- package/lib/plugins/lightning-experience-settings/index.js +42 -38
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/index.js +2 -2
- package/lib/plugins/linkedin-sales-navigator-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/page.d.ts +4 -2
- package/lib/plugins/linkedin-sales-navigator-settings/page.js +18 -8
- package/lib/plugins/linkedin-sales-navigator-settings/page.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js +4 -0
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.js +6 -14
- package/lib/plugins/omni-channel-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.js +4 -4
- package/lib/plugins/opportunity-splits/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.js +2 -4
- package/lib/plugins/opportunity-splits/pages/layout-selection.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.js +6 -11
- package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.js +2 -4
- package/lib/plugins/opportunity-splits/pages/setup.js.map +1 -1
- package/lib/plugins/permission-sets/index.e2e-spec.js +16 -5
- package/lib/plugins/permission-sets/index.e2e-spec.js.map +1 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js +32 -25
- package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.d.ts +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.js +9 -17
- package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
- package/lib/plugins/picklists/pages.d.ts +2 -1
- package/lib/plugins/picklists/pages.js +35 -63
- package/lib/plugins/picklists/pages.js.map +1 -1
- package/lib/plugins/record-types/pages.d.ts +1 -1
- package/lib/plugins/record-types/pages.js +15 -23
- package/lib/plugins/record-types/pages.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.d.ts +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js +32 -42
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +18 -13
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/formConfig.js +12 -12
- package/lib/plugins/salesforce-cpq-config/formConfig.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.js +87 -68
- package/lib/plugins/salesforce-cpq-config/index.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +1 -0
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.js +8 -16
- package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.js +18 -13
- package/lib/plugins/security/authentication-configuration/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.js +16 -21
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/service-channels/capacity/index.js +64 -35
- package/lib/plugins/service-channels/capacity/index.js.map +1 -1
- package/lib/plugins/service-channels/index.e2e-spec.js +4 -0
- package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -1
- package/lib/plugins/slack/index.js +13 -14
- package/lib/plugins/slack/index.js.map +1 -1
- package/lib/plugins/user-access-policies/index.e2e-spec.js +4 -2
- package/lib/plugins/user-access-policies/index.e2e-spec.js.map +1 -1
- package/lib/plugins/user-access-policies/index.js +4 -2
- package/lib/plugins/user-access-policies/index.js.map +1 -1
- package/lib/plugins/user-access-policies/page.d.ts +2 -2
- package/lib/plugins/user-access-policies/page.js +34 -51
- package/lib/plugins/user-access-policies/page.js.map +1 -1
- package/oclif.manifest.json +1 -11
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ $ sf browserforce apply -f ./config/currency.json --target-org myOrg@example.com
|
|
|
54
54
|
|
|
55
55
|
- 🔧 configuration using JSON Schema (similar to the [Scratch Org Definition Configuration](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs_def_file.htm))
|
|
56
56
|
- 🧠 idempotency of the `apply` command only applies what's necessary and allows re-execution (concept similar to [terraform](https://www.terraform.io/docs/commands/apply.html))
|
|
57
|
-
- 🏎️ browser automation powered by
|
|
57
|
+
- 🏎️ browser automation powered by Playwright, [learn more about Playwright and Browserforce](#playwright)
|
|
58
58
|
|
|
59
59
|
# Supported Browserforce Settings
|
|
60
60
|
|
|
@@ -126,30 +126,68 @@ Both the `browserforce apply` and `browserforce plan` commands expect a config f
|
|
|
126
126
|
- `BROWSERFORCE_RETRY_MAX_RETRIES`: number of retries on failures opening a page (default: `4`)
|
|
127
127
|
- `BROWSERFORCE_RETRY_TIMEOUT_MS`: initial time between retries in exponential mode (default: `4000`)
|
|
128
128
|
|
|
129
|
-
#
|
|
129
|
+
# Migration to Playwright
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
**Important Notice for Next Version Release:**
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
This project is transitioning from Puppeteer to Playwright for browser automation. The migration is planned for the next major version release.
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
> [Chrome for Testing](https://goo.gle/chrome-for-testing) (~170MB macOS, ~282MB Linux, ~280MB Windows) that is [guaranteed to
|
|
137
|
-
> work](https://pptr.dev/faq#q-why-doesnt-puppeteer-vxxx-work-with-chromium-vyyy)
|
|
138
|
-
> with Puppeteer. The browser is downloaded to the `$HOME/.cache/puppeteer` folder
|
|
139
|
-
> by default (starting with Puppeteer v19.0.0).
|
|
135
|
+
## What This Means for Users
|
|
140
136
|
|
|
141
|
-
|
|
137
|
+
### Current Version (Puppeteer-based)
|
|
138
|
+
- Continues to work as expected
|
|
139
|
+
- No action required from users
|
|
140
|
+
- Maintained for stability
|
|
142
141
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
142
|
+
### Next Version (Playwright-based)
|
|
143
|
+
The upcoming release will include:
|
|
144
|
+
|
|
145
|
+
1. **Improved Reliability**: Playwright offers better auto-waiting and more robust element interaction
|
|
146
|
+
2. **Better Frame Support**: Native iframe handling without workarounds
|
|
147
|
+
3. **Enhanced Debugging**: Built-in trace viewer and inspector tools
|
|
148
|
+
4. **Modern API**: More intuitive locator-based API
|
|
149
|
+
|
|
150
|
+
### Migration Actions Required
|
|
151
|
+
|
|
152
|
+
**For Plugin Developers:**
|
|
153
|
+
If you've created custom plugins or extended this project:
|
|
154
|
+
|
|
155
|
+
1. **Update Browser Automation Code**:
|
|
156
|
+
- Replace `page.$()` with `page.locator()`
|
|
157
|
+
- Replace `page.$$()` with `page.locator().all()`
|
|
158
|
+
- Update `ElementHandle` references to `Locator`
|
|
159
|
+
- Review frame handling code (Playwright has better native support)
|
|
160
|
+
|
|
161
|
+
2. **Update Dependencies**:
|
|
162
|
+
- Remove `puppeteer` dependency
|
|
163
|
+
- Add `playwright` or `@playwright/test` dependency
|
|
164
|
+
|
|
165
|
+
3. **Review Documentation**:
|
|
166
|
+
- See [`docs/PLAYWRIGHT.md`](docs/PLAYWRIGHT.md) for best practices
|
|
167
|
+
|
|
168
|
+
**For End Users:**
|
|
169
|
+
- No configuration changes required
|
|
170
|
+
- Browser download process remains similar
|
|
171
|
+
- Environment variables remain compatible
|
|
172
|
+
- All existing configuration files will continue to work
|
|
173
|
+
|
|
174
|
+
# Playwright
|
|
175
|
+
|
|
176
|
+
We use [Playwright](https://playwright.dev/) for browser automation which comes with its own Chromium browser.
|
|
177
|
+
|
|
178
|
+
The Playwright [installation guide](https://playwright.dev/docs/intro) describes how this works:
|
|
179
|
+
|
|
180
|
+
> Playwright comes with bundled browser binaries for Chromium, Firefox, and WebKit. When you install Playwright, it automatically downloads the Chromium browser to ensure consistent automation across different environments. The browser is downloaded to the OS-specific cache directory.
|
|
181
|
+
|
|
182
|
+
In most cases this just works! If you want to skip the download and use another browser installation, you can do this as follows:
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
For more information on browser automation best practices, see the [Playwright documentation](docs/PLAYWRIGHT.md).
|
|
149
186
|
|
|
150
187
|
Troubleshooting:
|
|
151
188
|
|
|
152
189
|
- The installation is triggered via the `postinstall` hook of npm/yarn. If you've disabled running scripts with npm (`--ignore-scripts` or via config file), it will not download the browser.
|
|
190
|
+
- If you encounter issues with browser downloads, you can manually install browsers with: `npx playwright install chromium`
|
|
153
191
|
|
|
154
192
|
# Contributing
|
|
155
193
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Flags, SfCommand, Ux
|
|
1
|
+
import { Flags, SfCommand, Ux } from '@salesforce/sf-plugins-core';
|
|
2
2
|
import { promises } from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
import { Browserforce } from './browserforce.js';
|
|
@@ -8,7 +8,7 @@ import * as DRIVERS from './plugins/index.js';
|
|
|
8
8
|
export class BrowserforceCommand extends SfCommand {
|
|
9
9
|
static baseFlags = {
|
|
10
10
|
...SfCommand.baseFlags,
|
|
11
|
-
'target-org':
|
|
11
|
+
'target-org': Flags.requiredOrg(),
|
|
12
12
|
definitionfile: Flags.string({
|
|
13
13
|
char: 'f',
|
|
14
14
|
description: 'path to a browserforce state file',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserforce-command.js","sourceRoot":"","sources":["../src/browserforce-command.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"browserforce-command.js","sourceRoot":"","sources":["../src/browserforce-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAE9C,MAAM,OAAgB,mBAAuB,SAAQ,SAAY;IAC/D,MAAM,CAAC,SAAS,GAAG;QACjB,GAAG,SAAS,CAAC,SAAS;QACtB,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,mCAAmC;SACjD,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,kCAAkC;SAChD,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,OAAO;YACb,WAAW,EACT,4MAA4M;SAC/M,CAAC;KACH,CAAC;IACQ,EAAE,CAAe;IACjB,QAAQ,CAAQ;IAEnB,KAAK,CAAC,IAAI;QACf,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YACjC,SAAS,EAAE,mBAAmB,CAAC,SAAS;SACzC,CAAC,CAAC;QACH,IAAI,UAAU,CAAC;QACf,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAClC,MAAM,CACP,CAAC;YACF,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC/B,0EAA0E;QAC1E,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CACxB,KAAK,CAAC,YAAY,CAAC,EACnB,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAC5C,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC"}
|
package/lib/browserforce.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Org } from '@salesforce/core';
|
|
2
2
|
import { type Ux } from '@salesforce/sf-plugins-core';
|
|
3
|
-
import { Browser,
|
|
3
|
+
import { Browser, BrowserContext, Page, FrameLocator } from 'playwright';
|
|
4
4
|
export declare class Browserforce {
|
|
5
5
|
org: Org;
|
|
6
6
|
logger?: Ux;
|
|
7
7
|
browser: Browser;
|
|
8
|
+
context: BrowserContext;
|
|
8
9
|
page: Page;
|
|
9
10
|
lightningSetupUrl: string;
|
|
10
11
|
constructor(org: Org, logger?: Ux);
|
|
@@ -12,14 +13,17 @@ export declare class Browserforce {
|
|
|
12
13
|
logout(): Promise<Browserforce>;
|
|
13
14
|
throwPageErrors(page: Page): Promise<void>;
|
|
14
15
|
getNewPage(): Promise<Page>;
|
|
15
|
-
openPage(urlPath: string, options?:
|
|
16
|
-
|
|
16
|
+
openPage(urlPath: string, options?: {
|
|
17
|
+
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
|
|
18
|
+
}): Promise<Page>;
|
|
19
|
+
waitForSelectorInFrameOrPage(page: Page, selector: string): Promise<Page | FrameLocator>;
|
|
17
20
|
getMyDomain(): string | null;
|
|
18
21
|
getInstanceUrl(): string;
|
|
19
22
|
/**
|
|
20
23
|
* @returns the setup url (e.g. https://[MyDomainName].my.salesforce-setup.com)
|
|
21
24
|
*/
|
|
22
25
|
getLightningSetupUrl(): Promise<string>;
|
|
26
|
+
waitForIdle(page: Page, maxWaitTime?: number): Promise<void>;
|
|
23
27
|
}
|
|
24
28
|
export declare function throwPageErrors(page: Page): Promise<void>;
|
|
25
29
|
export declare function retry<T>(input: (attemptCount: number) => PromiseLike<T> | T): Promise<T>;
|
package/lib/browserforce.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import pRetry from 'p-retry';
|
|
2
|
-
import {
|
|
2
|
+
import { chromium, } from 'playwright';
|
|
3
3
|
import { LoginPage } from './pages/login.js';
|
|
4
4
|
const ERROR_DIV_SELECTOR = '#errorTitle';
|
|
5
5
|
const ERROR_DIVS_SELECTOR = 'div.errorMsg';
|
|
@@ -8,6 +8,7 @@ export class Browserforce {
|
|
|
8
8
|
org;
|
|
9
9
|
logger;
|
|
10
10
|
browser;
|
|
11
|
+
context;
|
|
11
12
|
page;
|
|
12
13
|
lightningSetupUrl;
|
|
13
14
|
constructor(org, logger) {
|
|
@@ -15,16 +16,23 @@ export class Browserforce {
|
|
|
15
16
|
this.logger = logger;
|
|
16
17
|
}
|
|
17
18
|
async login() {
|
|
18
|
-
this.browser = await launch({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
'--disable-setuid-sandbox',
|
|
22
|
-
// workaround for navigating frames https://github.com/puppeteer/puppeteer/issues/5123
|
|
23
|
-
'--disable-features=site-per-process',
|
|
24
|
-
],
|
|
19
|
+
this.browser = await chromium.launch({
|
|
20
|
+
channel: process.env.CI ? 'chrome' : undefined,
|
|
21
|
+
args: ['--no-sandbox', '--disable-setuid-sandbox'],
|
|
25
22
|
headless: !(process.env.BROWSER_DEBUG === 'true'),
|
|
26
23
|
slowMo: parseInt(process.env.BROWSER_SLOWMO, 10) ?? 0,
|
|
27
24
|
});
|
|
25
|
+
this.context = await this.browser.newContext({
|
|
26
|
+
viewport: { width: 1024, height: 768 },
|
|
27
|
+
});
|
|
28
|
+
// Start tracing if PLAYWRIGHT_TRACE is set
|
|
29
|
+
if (process.env.PLAYWRIGHT_TRACE === 'true') {
|
|
30
|
+
await this.context.tracing.start({
|
|
31
|
+
screenshots: true,
|
|
32
|
+
snapshots: true,
|
|
33
|
+
sources: true,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
28
36
|
const page = await this.getNewPage();
|
|
29
37
|
try {
|
|
30
38
|
const loginPage = new LoginPage(page);
|
|
@@ -37,6 +45,15 @@ export class Browserforce {
|
|
|
37
45
|
}
|
|
38
46
|
async logout() {
|
|
39
47
|
if (this.browser) {
|
|
48
|
+
// Stop tracing and save if it was started
|
|
49
|
+
if (process.env.PLAYWRIGHT_TRACE === 'true') {
|
|
50
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
51
|
+
const tracePath = `trace-${timestamp}.zip`;
|
|
52
|
+
await this.context.tracing.stop({ path: tracePath });
|
|
53
|
+
if (this.logger) {
|
|
54
|
+
this.logger.log(`Playwright trace saved to: ${tracePath}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
40
57
|
await this.browser.close();
|
|
41
58
|
}
|
|
42
59
|
return this;
|
|
@@ -45,9 +62,8 @@ export class Browserforce {
|
|
|
45
62
|
await throwPageErrors(page);
|
|
46
63
|
}
|
|
47
64
|
async getNewPage() {
|
|
48
|
-
const page = await this.
|
|
65
|
+
const page = await this.context.newPage();
|
|
49
66
|
page.setDefaultNavigationTimeout(parseInt(process.env.BROWSERFORCE_NAVIGATION_TIMEOUT_MS ?? '90000', 10));
|
|
50
|
-
await page.setViewport({ width: 1024, height: 768 });
|
|
51
67
|
return page;
|
|
52
68
|
}
|
|
53
69
|
// path instead of url
|
|
@@ -59,7 +75,7 @@ export class Browserforce {
|
|
|
59
75
|
? await this.getLightningSetupUrl()
|
|
60
76
|
: this.getInstanceUrl();
|
|
61
77
|
const url = `${setupUrl}/${urlPath}`;
|
|
62
|
-
const response = await page.goto(url, options);
|
|
78
|
+
const response = await page.goto(url, options ?? { waitUntil: 'load' });
|
|
63
79
|
if (response) {
|
|
64
80
|
if (!response.ok()) {
|
|
65
81
|
await this.throwPageErrors(page);
|
|
@@ -88,19 +104,17 @@ export class Browserforce {
|
|
|
88
104
|
}
|
|
89
105
|
// If LEX is enabled, the classic url will be opened in an iframe.
|
|
90
106
|
// Wait for either the selector in the page or in the iframe.
|
|
91
|
-
// returns the page or the frame
|
|
107
|
+
// returns the page or the frame locator
|
|
92
108
|
async waitForSelectorInFrameOrPage(page, selector) {
|
|
93
|
-
await page.locator(`${selector}, ${VF_IFRAME_SELECTOR}`).
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
f.url() !== 'about:blank');
|
|
100
|
-
frameOrPage = frame;
|
|
109
|
+
await page.locator(`${selector}, ${VF_IFRAME_SELECTOR}`).first().waitFor();
|
|
110
|
+
const iframeCount = await page.locator(VF_IFRAME_SELECTOR).count();
|
|
111
|
+
if (iframeCount > 0) {
|
|
112
|
+
const frameLocator = page.frameLocator(VF_IFRAME_SELECTOR);
|
|
113
|
+
await frameLocator.locator(selector).first().waitFor();
|
|
114
|
+
return frameLocator;
|
|
101
115
|
}
|
|
102
|
-
await
|
|
103
|
-
return
|
|
116
|
+
await page.locator(selector).first().waitFor();
|
|
117
|
+
return page;
|
|
104
118
|
}
|
|
105
119
|
getMyDomain() {
|
|
106
120
|
const instanceUrl = this.getInstanceUrl();
|
|
@@ -123,7 +137,7 @@ export class Browserforce {
|
|
|
123
137
|
if (!this.lightningSetupUrl) {
|
|
124
138
|
const page = await this.getNewPage();
|
|
125
139
|
try {
|
|
126
|
-
const lightningResponse = await page.goto(`${this.getInstanceUrl()}/lightning/setup/SetupOneHome/home`, { waitUntil:
|
|
140
|
+
const lightningResponse = await page.goto(`${this.getInstanceUrl()}/lightning/setup/SetupOneHome/home`, { waitUntil: 'load' });
|
|
127
141
|
this.lightningSetupUrl = new URL(lightningResponse.url()).origin;
|
|
128
142
|
}
|
|
129
143
|
finally {
|
|
@@ -132,21 +146,32 @@ export class Browserforce {
|
|
|
132
146
|
}
|
|
133
147
|
return this.lightningSetupUrl;
|
|
134
148
|
}
|
|
149
|
+
async waitForIdle(page, maxWaitTime = 2000) {
|
|
150
|
+
try {
|
|
151
|
+
await page.waitForLoadState('networkidle', { timeout: maxWaitTime });
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
console.log(`Waited ${maxWaitTime}ms, continuing regardless of network state`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
135
157
|
}
|
|
136
158
|
export async function throwPageErrors(page) {
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
await
|
|
159
|
+
const errorLocator = page.locator(ERROR_DIV_SELECTOR);
|
|
160
|
+
const errorCount = await errorLocator.count();
|
|
161
|
+
if (errorCount > 0) {
|
|
162
|
+
const errorMsg = await errorLocator.first().innerText();
|
|
141
163
|
if (errorMsg && errorMsg.trim()) {
|
|
142
164
|
throw new Error(errorMsg.trim());
|
|
143
165
|
}
|
|
144
166
|
}
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
167
|
+
const errorDivsLocator = page.locator(ERROR_DIVS_SELECTOR);
|
|
168
|
+
const errorDivsCount = await errorDivsLocator.count();
|
|
169
|
+
if (errorDivsCount > 0) {
|
|
170
|
+
const errorMessages = [];
|
|
171
|
+
for (let i = 0; i < errorDivsCount; i++) {
|
|
172
|
+
const text = await errorDivsLocator.nth(i).innerText();
|
|
173
|
+
errorMessages.push(text);
|
|
174
|
+
}
|
|
150
175
|
const errorMsg = errorMessages
|
|
151
176
|
.map((m) => m.trim())
|
|
152
177
|
.join(' ')
|
package/lib/browserforce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":"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"}
|
package/lib/pages/login.d.ts
CHANGED
package/lib/pages/login.js
CHANGED
|
@@ -15,8 +15,7 @@ export class LoginPage {
|
|
|
15
15
|
}
|
|
16
16
|
const conn = org.getConnection();
|
|
17
17
|
const response = await this.page.goto(`${conn.instanceUrl.replace(/\/$/, '')}/${FRONT_DOOR_PATH}?sid=${conn.accessToken}&retURL=${encodeURIComponent(POST_LOGIN_PATH)}`, {
|
|
18
|
-
|
|
19
|
-
waitUntil: ['load', 'networkidle2'],
|
|
18
|
+
waitUntil: 'load',
|
|
20
19
|
});
|
|
21
20
|
const url = new URL(response.url());
|
|
22
21
|
if (url.searchParams.has('startURL')) {
|
|
@@ -27,9 +26,10 @@ export class LoginPage {
|
|
|
27
26
|
return this;
|
|
28
27
|
}
|
|
29
28
|
async throwPageErrors() {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const errorLocator = this.page.locator(ERROR_DIV_SELECTOR);
|
|
30
|
+
const errorCount = await errorLocator.count();
|
|
31
|
+
if (errorCount > 0) {
|
|
32
|
+
const errorMessage = (await errorLocator.first().innerText())?.trim();
|
|
33
33
|
if (errorMessage) {
|
|
34
34
|
throw new Error(errorMessage);
|
|
35
35
|
}
|
package/lib/pages/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/pages/login.ts"],"names":[],"mappings":"AAGA,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAEpC,MAAM,OAAO,SAAS;IACZ,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,QACvD,IAAI,CAAC,WACP,WAAW,kBAAkB,CAAC,eAAe,CAAC,EAAE,EAChD;YACE,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/pages/login.ts"],"names":[],"mappings":"AAGA,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAEpC,MAAM,OAAO,SAAS;IACZ,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,QACvD,IAAI,CAAC,WACP,WAAW,kBAAkB,CAAC,eAAe,CAAC,EAAE,EAChD;YACE,SAAS,EAAE,MAAM;SAClB,CACF,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,qDAAqD;YACrD,kCAAkC;YAClC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAE9C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;YACtE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -5,9 +5,10 @@ const SUBMIT_BUTTON_SELECTOR = 'input[id="thePage:theForm:theBlock:buttons:submi
|
|
|
5
5
|
export class ActivitySettings extends BrowserforcePlugin {
|
|
6
6
|
async retrieve() {
|
|
7
7
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
8
|
-
await page.waitForSelector(MANY_WHO_PREF_INPUT_SELECTOR);
|
|
9
8
|
const response = {
|
|
10
|
-
allowUsersToRelateMultipleContactsToTasksAndEvents: await page
|
|
9
|
+
allowUsersToRelateMultipleContactsToTasksAndEvents: await page
|
|
10
|
+
.locator(MANY_WHO_PREF_INPUT_SELECTOR)
|
|
11
|
+
.isChecked(),
|
|
11
12
|
};
|
|
12
13
|
await page.close();
|
|
13
14
|
return response;
|
|
@@ -17,13 +18,15 @@ export class ActivitySettings extends BrowserforcePlugin {
|
|
|
17
18
|
throw new Error('`allowUsersToRelateMultipleContactsToTasksAndEvents` can only be disabled with help of the salesforce.com Support team');
|
|
18
19
|
}
|
|
19
20
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
20
|
-
await page.
|
|
21
|
-
await page
|
|
21
|
+
await page.locator(MANY_WHO_PREF_INPUT_SELECTOR).waitFor();
|
|
22
|
+
await page
|
|
23
|
+
.locator(MANY_WHO_PREF_INPUT_SELECTOR)
|
|
24
|
+
.evaluate((e, v) => {
|
|
22
25
|
e.checked = v;
|
|
23
26
|
}, config.allowUsersToRelateMultipleContactsToTasksAndEvents);
|
|
24
27
|
await Promise.all([
|
|
25
|
-
page.
|
|
26
|
-
page.
|
|
28
|
+
page.waitForLoadState('load'),
|
|
29
|
+
page.locator(SUBMIT_BUTTON_SELECTOR).click(),
|
|
27
30
|
]);
|
|
28
31
|
await page.close();
|
|
29
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/activity-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD,MAAM,4BAA4B,GAChC,kDAAkD,CAAC;AACrD,MAAM,sBAAsB,GAC1B,qDAAqD,CAAC;AAMxD,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IAC/C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/activity-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD,MAAM,4BAA4B,GAChC,kDAAkD,CAAC;AACrD,MAAM,sBAAsB,GAC1B,qDAAqD,CAAC;AAMxD,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IAC/C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG;YACf,kDAAkD,EAAE,MAAM,IAAI;iBAC3D,OAAO,CAAC,4BAA4B,CAAC;iBACrC,SAAS,EAAE;SACf,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,kDAAkD,KAAK,KAAK,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3D,MAAM,IAAI;aACP,OAAO,CAAC,4BAA4B,CAAC;aACrC,QAAQ,CAAC,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;YAC5C,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAChB,CAAC,EAAE,MAAM,CAAC,kDAAkD,CAAC,CAAC;QAEhE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE;SAC7C,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -5,13 +5,16 @@ const SAVE_BUTTON_SELECTOR = 'input[class="btn"][type="submit"][name="save"]';
|
|
|
5
5
|
export class CompanyInformation extends BrowserforcePlugin {
|
|
6
6
|
async retrieve() {
|
|
7
7
|
const page = await this.browserforce.openPage(getUrl(this.org.getOrgId()));
|
|
8
|
-
await page.
|
|
8
|
+
await page.locator(CURRENCY_DROPDOWN_SELECTOR).waitFor();
|
|
9
9
|
const response = {
|
|
10
10
|
defaultCurrencyIsoCode: '',
|
|
11
11
|
};
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const selectedOption = await page
|
|
13
|
+
.locator(`${CURRENCY_DROPDOWN_SELECTOR} > option[selected]`)
|
|
14
|
+
.first()
|
|
15
|
+
.textContent();
|
|
16
|
+
if (selectedOption) {
|
|
17
|
+
response.defaultCurrencyIsoCode = selectedOption;
|
|
15
18
|
}
|
|
16
19
|
await page.close();
|
|
17
20
|
return response;
|
|
@@ -20,28 +23,35 @@ export class CompanyInformation extends BrowserforcePlugin {
|
|
|
20
23
|
if (config.defaultCurrencyIsoCode !== undefined) {
|
|
21
24
|
const page = await this.browserforce.openPage(getUrl(this.org.getOrgId()));
|
|
22
25
|
// wait for selectors
|
|
23
|
-
await page.
|
|
24
|
-
|
|
25
|
-
await page.waitForSelector(SAVE_BUTTON_SELECTOR);
|
|
26
|
+
await page.locator(CURRENCY_DROPDOWN_SELECTOR).waitFor();
|
|
27
|
+
await page.locator(SAVE_BUTTON_SELECTOR).waitFor();
|
|
26
28
|
// apply changes
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const optionLocator = page.locator(`${CURRENCY_DROPDOWN_SELECTOR} > option`);
|
|
30
|
+
const optionCount = await optionLocator.count();
|
|
31
|
+
const optionList = [];
|
|
32
|
+
for (let i = 0; i < optionCount; i++) {
|
|
33
|
+
const option = optionLocator.nth(i);
|
|
34
|
+
const value = await option.getAttribute('value');
|
|
35
|
+
const textContent = await option.textContent();
|
|
36
|
+
if (value && textContent) {
|
|
37
|
+
optionList.push({ value, textContent });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const toBeSelectedOption = optionList.find((option) => option.textContent === config.defaultCurrencyIsoCode);
|
|
33
41
|
if (!toBeSelectedOption) {
|
|
34
42
|
throw new Error(`Invalid currency provided. '${config.defaultCurrencyIsoCode}' is not a valid option available for currencies. Please use the exact name as it appears in the list.`);
|
|
35
43
|
}
|
|
36
|
-
await
|
|
44
|
+
await page
|
|
45
|
+
.locator(CURRENCY_DROPDOWN_SELECTOR)
|
|
46
|
+
.selectOption(toBeSelectedOption.value);
|
|
37
47
|
// auto accept the dialog when it appears
|
|
38
48
|
page.on('dialog', (dialog) => {
|
|
39
49
|
dialog.accept();
|
|
40
50
|
});
|
|
41
51
|
// save
|
|
42
52
|
await Promise.all([
|
|
43
|
-
page.
|
|
44
|
-
page.
|
|
53
|
+
page.waitForLoadState('load'),
|
|
54
|
+
page.locator(SAVE_BUTTON_SELECTOR).click(),
|
|
45
55
|
]);
|
|
46
56
|
await page.close();
|
|
47
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/company-information/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;AAEhD,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AAC7D,MAAM,oBAAoB,GAAG,gDAAgD,CAAC;AAM9E,MAAM,OAAO,kBAAmB,SAAQ,kBAAkB;IACjD,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/company-information/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,9 @@ export class CustomerPortalAvailableCustomObjects extends BrowserforcePlugin {
|
|
|
52
52
|
const frameOrPage = await this.browserforce.waitForSelectorInFrameOrPage(editPage, CUSTOM_OBJECT_AVAILABLE_FOR_CUSTOMER_PORTAL_SELECTOR);
|
|
53
53
|
response.push({
|
|
54
54
|
...result,
|
|
55
|
-
available: await frameOrPage
|
|
55
|
+
available: await frameOrPage
|
|
56
|
+
.locator(CUSTOM_OBJECT_AVAILABLE_FOR_CUSTOMER_PORTAL_SELECTOR)
|
|
57
|
+
.evaluate((el) => el.checked),
|
|
56
58
|
});
|
|
57
59
|
await editPage.close();
|
|
58
60
|
}
|
|
@@ -101,10 +103,8 @@ export class CustomerPortalAvailableCustomObjects extends BrowserforcePlugin {
|
|
|
101
103
|
const pageUrl = getObjectPageUrl(customObject, isLEX);
|
|
102
104
|
const editPage = await this.browserforce.openPage(pageUrl);
|
|
103
105
|
const frameOrPage = await this.browserforce.waitForSelectorInFrameOrPage(editPage, SAVE_BUTTON_SELECTOR);
|
|
104
|
-
await
|
|
105
|
-
|
|
106
|
-
frameOrPage.click(SAVE_BUTTON_SELECTOR),
|
|
107
|
-
]);
|
|
106
|
+
await frameOrPage.locator(SAVE_BUTTON_SELECTOR).first().click();
|
|
107
|
+
await editPage.getByRole('heading', { name: 'Details' }).waitFor();
|
|
108
108
|
await editPage.close();
|
|
109
109
|
}
|
|
110
110
|
await page.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/available-custom-objects/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAClD,MAAM,oDAAoD,GAAG,YAAY,CAAC;AAgB1E,MAAM,OAAO,oCAAqC,SAAQ,kBAAkB;IACnE,KAAK,CAAC,QAAQ,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,yBAAyB,GAAG,UAAU;iBACzC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;gBACpB,OAAO,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC;YAClC,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG;iBACjC,aAAa,EAAE;iBACf,OAAO,CAAC,KAAK,CACZ,uFAAuF,yBAAyB,6BAA6B,EAC7I,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;YACJ,qFAAqF;YACrF,8EAA8E;YAC9E,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,OAAO,EAAE,CAAC;gBAC5C,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;oBACpC,MAAM,CAAC,eAAe,GAAG,SAAS,CAAC;gBACrC,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClD,wJAAwJ;YACxJ,MAAM,KAAK,GACT,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACnC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACrC,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/available-custom-objects/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,11 @@ export class CustomerPortalEnable extends BrowserforcePlugin {
|
|
|
15
15
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
16
16
|
await page
|
|
17
17
|
.locator(ENABLE_CHECKBOX)
|
|
18
|
-
.
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
]);
|
|
18
|
+
.evaluate((checkbox) => {
|
|
19
|
+
checkbox.checked = true;
|
|
20
|
+
});
|
|
21
|
+
await page.locator(SAVE_BUTTON).first().click();
|
|
22
|
+
await page.waitForLoadState('load');
|
|
24
23
|
await page.close();
|
|
25
24
|
}
|
|
26
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/enabled/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,SAAS,GAAG,8CAA8C,CAAC;AAEjE,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,eAAe,GAAG,uCAAuC,CAAC;AAIhE,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IACnD,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,2BAA2B,IAAI,KAAK,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAY;QAC7B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI;aACP,OAAO,CAAC,eAAe,CAAC;aACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/enabled/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,SAAS,GAAG,8CAA8C,CAAC;AAEjE,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,eAAe,GAAG,uCAAuC,CAAC;AAIhE,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IACnD,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,2BAA2B,IAAI,KAAK,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAY;QAC7B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI;aACP,OAAO,CAAC,eAAe,CAAC;aACxB,QAAQ,CAAC,CAAC,QAA0B,EAAE,EAAE;YACvC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC,CAAC;QACL,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|