Answered

Microsoft Power Apps testing

We are using Subject7 to test an application built with Microsoft "Power Apps".   When doing this there are a lot of items which are built in a different format then what I normally see.   One example is added below.   Normally, I would use an XPath to find an item, but in this case there doesn't seem to be a reasonable approach.   I am looking for potential guidance on what might work.   The formats produced by Power Apps are hard coded, and there is not a lot of flexibility to organize them.

In this case, The XPath to get to the start of the fuzzy section would be

 

//div/input

After that, there is an unusual format for the data.   In the example below, I am looking for the data which is in bold "Subject: Here is a subject".   Any ideas on how to get there?

 

<div class="appmagic-textbox" touch-action="pan-x pan-y" appmagic-control="txt_View_Title">
  <!-- ko if: (mode() === "multiline") --><!-- /ko -->
  <!-- ko if: (mode() !== "multiline") -->
  <input appmagic-control="txt_View_Titletextbox" class="appmagic-text mousetrap block-undo-redo readonly" data-bind="
      attr: {
        type: mode() === 'password' ? 'password' : 'text',
        title: properties.Tooltip() || null,
        'aria-label': properties.AccessibleLabel() || null,
        placeholder: properties.HintText,
        readonly: viewState.displayMode() === AppMagic.Constants.DisplayMode.View,
        'data-control-part': properties.Clear() ? 'text clearable' : 'text',
        inputmode: keyboardMode,
        maxlength: properties.MaxLength() < 0 ? 0 : properties.MaxLength()
      },
      css: {
        underline: properties.Underline,
        strikethrough: properties.Strikethrough,
        readonly: viewState.displayMode() === AppMagic.Constants.DisplayMode.View
      },
      value: text,
      event: {
        click: handleClick,
        change: handleOnChange
      },
      style: {
        fontFamily: properties.Font,
        fontSize: properties.Size,
        color: autoProperties.Color,
        fontWeight: properties.FontWeight,
        fontStyle: properties.Italic,
        textAlign: properties.Align,
        lineHeight: properties.LineHeight,
        paddingTop: properties.PaddingTop,
        paddingRight: properties.PaddingRight,
        paddingBottom: properties.PaddingBottom,
        paddingLeft: properties.PaddingLeft
      },
      disable: viewState.displayMode() === AppMagic.Constants.DisplayMode.Disabled" type="text" title="Subject: Here is a subject" aria-label="Subject: Here is a subject" placeholder="" readonly="true" data-control-part="text" inputmode="text" tabindex="30" style="font-family: &quot;Open Sans&quot;, sans-serif; font-size: 12pt; color: rgb(51, 51, 51); font-weight: 600; font-style: normal; text-align: left; line-height: 1.2; padding: 5px;">
  
  <div class="appmagic-text-clear-container">
    <button class="appmagic-text-clear-button" data-control-part="clear" data-bind="
        visible: isFocused() &amp;&amp; properties.Clear() &amp;&amp; properties.Text() &amp;&amp; mode() !== 'password' &amp;&amp; viewState.displayMode() === AppMagic.Constants.DisplayMode.Edit,
        event: {click: handleClearClick},
        attr: {'aria-label': AppMagic.Strings.TextInputClearButtonLabel},
        style: {color: autoProperties.Color}" aria-label="Clear value" tabindex="31" style="display: none; color: rgb(51, 51, 51);">
        <svg class="appmagic-text-clear-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" aria-hidden="true" focusable="false">
          <polygon points="12,1.1 10.9,0 6,4.9 1.1,0 0,1.1 4.9,6 0,10.9 1.1,12 6,7.1 10.9,12 12,10.9 7.1,6"></polygon>
        </svg>
    </button>
  </div>
  <!-- /ko -->
  <!-- ko if: properties.Format() === 'number' && viewState.displayMode() === AppMagic.Constants.DisplayMode.Edit --><!-- /ko -->
  </div>

 

 

 

1
3 comments
Avatar
William Smith

This would be for something like a Get_Web_Value command.

 

0
Comment actions Permalink
Avatar
Rex Feizi

William, 

I used the following to read the value of the title attribute to the variable called "val" using the Get_Web_Value. Here is a screenshot of the command 


Please let us know if this works for you. 

0
Comment actions Permalink
Avatar
William Smith

Thank you Rex.   That gave me the clue I needed to solve my issue.   It also helped me to understand the command a bit better which will be useful for other testing.   I appreciate it.

0
Comment actions Permalink

Please sign in to leave a comment.