@@ -63,9 +63,9 @@ class PluginRowObject {
6363 id : number ;
6464 name : string ;
6565 version : string ;
66- statusBtn ;
66+ statusBtn : WebdriverIO . Element ;
6767 status : string ;
68- settingsBtn ;
68+ settingsBtn : WebdriverIO . Element ;
6969 rowNumber : number ;
7070
7171 public async getRow ( rowNum : number ) : Promise < PluginRowObject > {
@@ -76,12 +76,18 @@ class PluginRowObject {
7676 this . version = await ( await $ ( '#plugin-version' + this . rowNumber ) ) . getText ( ) ;
7777 this . settingsBtn = await $ ( '#plugin-settings-link' + this . rowNumber ) ;
7878 this . statusBtn = await $ ( '#plugin-status-button' + this . rowNumber ) ;
79- const pluginStatus = await $ ( '#plugin-status' + this . rowNumber ) ;
80- this . status = await ( await this . statusBtn . $ ( 'mat-icon' ) ) . getText ( ) ;
79+ // To get status, we need to open the menu first since the button is inside mat-menu
80+ await this . clickActionsMenu ( ) ;
81+ const statusIcon = await this . statusBtn . $ ( 'mat-icon' ) ;
82+ this . status = await statusIcon . getText ( ) ;
83+ // Close the menu by clicking elsewhere or pressing escape
84+ await browser . keys ( 'Escape' ) ;
85+ await browser . pause ( 500 ) ;
8186 return this ;
8287 }
8388
8489 async enableOrDisablePlugin ( timeout = 100000 ) {
90+ await this . clickActionsMenu ( ) ;
8591 await this . statusBtn . click ( ) ;
8692 await browser . pause ( 500 ) ;
8793 await ( await pluginPage . pluginOKBtn ( ) ) . waitForDisplayed ( { timeout : 40000 } ) ;
@@ -92,4 +98,10 @@ class PluginRowObject {
9298 await myEformsPage . Navbar . goToPluginsPage ( ) ;
9399 await browser . pause ( 500 ) ;
94100 }
101+
102+ private async clickActionsMenu ( ) {
103+ await browser . pause ( 1000 ) ;
104+ await ( await $$ ( '#actionMenu' ) [ this . rowNumber ] ) . click ( ) ;
105+ await browser . pause ( 1000 ) ;
106+ }
95107}
0 commit comments