Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
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';