API viide

See Power Platform Playwrighti tööriistakomplekt API viitedokumendid, avalikud klassid, meetodid ja tüübid, mida saate kasutada lõuendi ja mudelipõhiste rakenduste täieliku testimise automatiseerimiseks.

AppProvider

Power Platformi rakenduste käivitamise sisenemiskoht. Instantiate üks kord testi kohta, seejärel helistage launch().

class AppProvider {
  constructor(page: Page, context: BrowserContext)

  launch(options: AppLaunchOptions): Promise<void>
  getModelDrivenAppPage(): ModelDrivenAppPage
  getCanvasAppPage(): CanvasAppPage
  getGenUxPage(): GenUxPage
}

AppLaunchOptions

Suvandid, mis on edastatud, et konfigureerida AppProvider.launch() , millist rakendust avada ja kuidas seda teha.

interface AppLaunchOptions {
  app: string;                  // Display name of the app
  type: AppType;                // Canvas | ModelDriven
  mode: AppLaunchMode;          // Play | Edit
  skipMakerPortal?: boolean;    // true: use directUrl, skip make.powerapps.com navigation
  directUrl?: string;           // Full URL when skipMakerPortal is true
}

AppType

Määrab käivitatava Power Platformi rakenduse tüübi.

enum AppType {
  Canvas = 'canvas',
  ModelDriven = 'model-driven',
}

AppLaunchMode

Määrab, kas rakendus avatakse esitus- või redigeerimisrežiimis.

enum AppLaunchMode {
  Play = 'play',
  Edit = 'edit',
}

ModelDrivenAppPage

Tagastas .AppProvider.getModelDrivenAppPage() Pakub navigeerimis- ja komponendipääsu.

class ModelDrivenAppPage {
  readonly grid: GridComponent
  readonly form: FormComponent
  readonly commanding: CommandingComponent

  navigateToGridView(entityLogicalName: string): Promise<void>
  navigateToFormView(entityLogicalName: string): Promise<void>
}

GridComponent

Mähkib mudelipõhistes loendivaadetes kasutatava AG-ruudustiku . Juurdepääs : ModelDrivenAppPage.grid.

class GridComponent {
  waitForGridLoad(): Promise<void>

  filterByKeyword(keyword: string): Promise<void>
  filterByColumn(columnName: string, value: string): Promise<void>

  getCellValue(rowIndex: number, columnName: string): Promise<string | null>
  getRowCount(): Promise<number>
  isGridEmpty(): Promise<boolean>

  openRecord(options: OpenRecordOptions): Promise<void>
  selectRow(rowIndex: number): Promise<void>
  selectRows(rowIndexes: number[]): Promise<void>
}

OpenRecordOptions

Ruudustikust avatava kirje tuvastamise suvandid.

interface OpenRecordOptions {
  rowNumber?: number;         // 0-based row index
  columnName?: string;        // column to match (display name or schema name)
  columnValue?: string;       // value to match in the column
}

FormComponent

Mähkib Dynamics 365 vormi käitusaja. Juurdepääs : ModelDrivenAppPage.form.

class FormComponent {
  getAttribute(fieldName: string): Promise<string | null>
  setAttribute(fieldName: string, value: string): Promise<void>

  save(): Promise<void>
  isDirty(): Promise<boolean>
  isValid(): Promise<boolean>

  navigateToTab(tabName: string): Promise<void>

  setFieldVisibility(fieldName: string, visible: boolean): Promise<void>
  setFieldDisabled(fieldName: string, disabled: boolean): Promise<void>
  setFieldRequiredLevel(
    fieldName: string,
    level: 'none' | 'recommended' | 'required'
  ): Promise<void>

  execute<T>(
    fn: (formContext: Xrm.FormContext) => T | Promise<T>
  ): Promise<T>
}

FormComponent.execute()

Käitab brauseri vormikontekstis suvalise koodi, millel on täielik juurdepääs Xrm-i kliendi API-le:

const value = await mda.form.execute(
  (ctx) => ctx.getAttribute('nwind_ordernumber')?.getValue()
);

Üksikasjalikku kasutust vaadake teemast API testimine vormikonteksti kaudu .


CommandingComponent

Mähkib mudelipõhise rakenduse käsuriba. Juurdepääs : ModelDrivenAppPage.commanding.

class CommandingComponent {
  clickButton(ariaLabel: string): Promise<void>
  clickMoreCommands(): Promise<void>
}

CanvasAppPage

Tagastas .AppProvider.getCanvasAppPage() Pakub iframe'i iframe'i raami lokaatorit.

class CanvasAppPage {
  getFrame(): FrameLocator
  waitForLoad(controlName?: string): Promise<void>
}

GenUxPage

Tagastas .AppProvider.getGenUxPage() Pakub suhtlust Power Apps Makeri portaali genUX-i tehtekujundajaga, et luua, genereerida, kontrollida ja avaldada teibaidi viipade kaudu mudelipõhiseid rakendusi.

class GenUxPage {
  readonly previewFrame: FrameLocator  // UCI Preview iframe locator

  // Power Apps navigation
  goToAppsPage(): Promise<void>
  navigateToStartWithPageDesign(): Promise<void>
  createAppWithName(appName: string): Promise<void>
  addNewPage(): Promise<void>

  // AI generation
  waitForUCIPreviewFrameAndFillPrompt(prompt: string): Promise<void>
  waitForUCIPreviewFrameAndSelectTemplate(templateText: string): Promise<void>
  verifyThoughtStreaming(): Promise<void>
  verifyCodeAndPreviewTabsAvailable(): Promise<void>
  verifyCodeStreaming(): Promise<void>

  // Inspection
  clickPreviewTab(): Promise<void>
  clickCodeTab(): Promise<void>
  waitForGeneratedContent(): Promise<void>
  waitForCodeTabContent(): Promise<void>
  getPreviewTabDom(): Promise<string>
  getCodeTabContent(): Promise<string>

  // Publishing
  publishApp(): Promise<void>
  buildCanvasPlayUrl(): string

  // Form interaction
  submitForm(): Promise<void>
  waitForSubmitSuccess(timeout?: number): Promise<void>

  // App management
  getAppIdFromUrl(): string
  searchAndPlayApp(appName: string, context: BrowserContext): Promise<Page | null>
  deleteAppsMatchingPrefix(prefix: string): Promise<void>
  deleteAppFromAppListIfFound(appName: string): Promise<void>
}

GenUxPage.previewFrame

Paljastab FrameLocator UCI eelvaate iframe'i. Kasutage seda atribuuti loodud vormielementide otsepäringu tegemiseks:

const input = genUxPage.previewFrame.getByRole('textbox', { name: 'First Name' });
await expect(input).toBeVisible();

GenUxPage.verifyThoughtStreaming()

Otsib transientseid GenUX-i voogesituse näidikuid (nt mõttetekst, nupp Peata ja Agent Thoughts). Iga kontroll on parim lahendus – genereerimine võib enne kõigi näidikute ilmumist lõpule viia. Ainus kõva kinnitus on see, et voogesitus on pooleli või "Your page is now generated" nähtav.

GenUxPage.searchAndPlayApp()

Tagastab selle asemel, et kuvada tõrge, kui null esitus on keelatud (rakendus pole veel avaldatud). Kasutage test.skip() tagastuse puhul null :

const appPage = await genUxPage.searchAndPlayApp(appName, context);
if (!appPage) test.skip();

Utiliitide funktsioonid

Autonoomsed abistajafunktsioonid levinud häälestus- ja konfiguratsioonitoimingute jaoks.

buildCanvasAppUrlFromEnv

Keskkonnast saadud kirjutuskaitstud CANVAS_APP_URL :

function buildCanvasAppUrlFromEnv(): string

getStorageStatePath

Tagastab antud meilisõnumi Power Apps salvestusruumi olekufaili tee.

function getStorageStatePath(email: string): string
// Returns: packages/e2e-tests/.playwright-ms-auth/state-<email>.json

ConfigHelper

Pakub konfiguratsiooniabilised, näiteks kontrollib, kas vahemällu talletatud salvestusruum on aegunud.

class ConfigHelper {
  static checkStorageStateExpiration(
    statePath: string
  ): { expired: boolean; expiresOn?: number }
}

Lokaatoriutiliidid

Abistaja meetodid Power Apps juhtelementide otsimiseks iframe'ides.

LocatorUtils

Staatilised meetodid lõuendirakenduse juhtelementide ja galeriiüksuste nime järgi otsimiseks.

class LocatorUtils {
  static getByControlName(frame: FrameLocator, controlName: string): Locator
  static getGalleryItem(frame: FrameLocator, titleText: string): Locator
}

Tippige eksport

Ekspordi paketi juurkaustast kõik tüübid:

import {
  AppProvider,
  AppType,
  AppLaunchMode,
  AppLaunchOptions,
  ModelDrivenAppPage,
  GridComponent,
  FormComponent,
  CommandingComponent,
  CanvasAppPage,
  GenUxPage,
  buildCanvasAppUrlFromEnv,
  getStorageStatePath,
  ConfigHelper,
  LocatorUtils,
} from 'power-platform-playwright-toolkit';

Järgmised sammud

Vt ka