首页 > 解决方案 > 试图为“查看报告”按钮找到动态 xpath

问题描述

<div data-component-id="flexipage_reportChart8" data-aura-rendered-by="820:0" class="flexipageComponent" data-aura-class="flexipageComponent" xpath="1">
    <article class="slds-card slds-card_boundary forceBaseCard flexipageCard flexipageReportChart" aria-describedby="header_923:0" data-aura-rendered-by="926:0" data-aura-class="forceBaseCard flexipageCard flexipageReportChart">
        <div class="slds-card__header slds-grid" data-aura-rendered-by="146:1058;a">
            <header class="slds-media slds-media--center slds-has-flexi-truncate" data-aura-rendered-by="148:1058;a">
                <!--render facet: 150:1058;a-->
                <div class="slds-media__body" data-aura-rendered-by="153:1058;a">
                    <h2 class="header-title-container" id="header_923:0" data-aura-rendered-by="154:1058;a"><span class="slds-card__header-title slds-truncate" title="More" data-aura-rendered-by="155:1058;a">More</span></h2></div>
            </header>
            <!--render facet: 157:1058;a-->
        </div>
        <div class="slds-card__body slds-card__body--inner" data-aura-rendered-by="928:0">
            <div class="width_auto analyticsEmbeddedReportChart" data-aura-rendered-by="4:1058;a" data-aura-class="analyticsEmbeddedReportChart">
                <!--render facet: 5:1058;a-->
                <div class="outerbound" data-aura-rendered-by="10:1058;a">
                    <div class="chartContainer size_auto" data-aura-rendered-by="11:1058;a">
                        <!--render facet: 17:1058;a-->
                        <div class="autoWidth analyticsEmbeddedChart" style="height:300px;" data-aura-rendered-by="25:1058;a" data-aura-class="analyticsEmbeddedChart">
                            <div class="loadingMask hideLoading" data-aura-rendered-by="26:1058;a">
                                <div class="loadingPanel" data-aura-rendered-by="27:1058;a"></div><span class="loadingMsg" data-aura-rendered-by="28:1058;a">Loading report chart...</span></div>
                            <!--render facet: 30:1058;a-->
                            <!--render facet: 75:1058;a-->
                            <!--render facet: 82:1058;a-->
                            <!--render facet: 96:1058;a-->
                            <div class="eclair-component-container reportsEclairChart" data-aura-rendered-by="106:1058;a" data-aura-class="reportsEclairChart">
                                <div class="eclair-component-chart ng-cursor-default" data-aura-rendered-by="107:1058;a" data-ngname="chart_5" style="width: 380.844px;">
                                    <div style="position: relative;">
                                        <div style="z-index: 2; position: absolute; overflow: hidden; background-color: rgba(255, 255, 255, 0); width: 380.844px; height: 300px; left: 0px; top: 0px;" class="ps-container" data-ps-id="414c4b20-2e6b-f1a2-2116-7ff0144f88a4">
                                            <div style="width: 381px; height: 300px;"></div>
                                            <div class="ps-scrollbar-x-rail" style="left: 0px; bottom: 3px;">
                                                <div class="ps-scrollbar-x" style="left: 0px; width: 0px;"></div>
                                            </div>
                                            <div class="ps-scrollbar-y-rail" style="top: 0px; right: 3px;">
                                                <div class="ps-scrollbar-y" style="top: 0px; height: 0px;"></div>
                                            </div>
                                        </div>
                                        <canvas class="chart" style="z-index: 1; position: absolute; -webkit-font-smoothing: antialiased; width: 380.844px; height: 300px; left: 0px; top: 0px;" width="571" height="450"></canvas>
                                        <button aria-live="polite" class="reportsEclairChart ng-button assistiveText">Enable Tab Navigation for This Chart<span class="assistiveText">Enable table equivalent for screen reader users</span></button>
                                    </div>
                                    <div data-ngname="legend_chart_5" style="">
                                        <div style="position: relative;">
                                            <div class="ps-container" data-ps-id="1d1e50a4-a66a-2415-9d77-2a3c62481170" style="z-index: 3; position: absolute; overflow: hidden; background-color: rgba(255, 255, 255, 0); width: 124px; height: 88px; left: 254.844px; top: 2px;">
                                                <div style="width: 124.88px; height: 86px;"></div>
                                                <div class="ps-scrollbar-x-rail" style="left: 0px; bottom: 3px;">
                                                    <div class="ps-scrollbar-x" style="left: 0px; width: 0px;"></div>
                                                </div>
                                                <div class="ps-scrollbar-y-rail" style="top: 0px; right: 3px;">
                                                    <div class="ps-scrollbar-y" style="top: 0px; height: 0px;"></div>
                                                </div>
                                            </div>
                                            <canvas class="legend" style="z-index: 2; position: absolute; -webkit-font-smoothing: antialiased; width: 124px; height: 88px; left: 254.844px; top: 2px;" width="186" height="132"></canvas>
                                        </div>
                                    </div>
                                    <div class="ng-annotations-container" style="margin: 2px; width: 376.844px; height: 296px;"></div>
                                </div>
                                <div class="error-div hide" data-aura-rendered-by="108:1058;a"></div><span class="eclair-component-alt-text" data-aura-rendered-by="109:1058;a">Chart: Untitled</span></div>
                            <!--render facet: 111:1058;a-->
                        </div>
                    </div>
                </div>
                <DIV CLASS="LIGHTNING" DATA-AURA-RENDERED-BY="113:1058;A"><SPAN CLASS="REPORTFOOTER" DATA-AURA-RENDERED-BY="114:1058;A"><BUTTON CLASS="SLDS-BUTTON NAVIGATEBUTTON UIBUTTON" ARIA-LIVE="OFF" TYPE="BUTTON" DATA-AURA-RENDERED-BY="118:1058;A" DATA-AURA-CLASS="UIBUTTON"><!--RENDER FACET: 119:1058;A--><SPAN CLASS=" LABEL BBODY" DIR="LTR" DATA-AURA-RENDERED-BY="121:1058;A">VIEW REPORT</SPAN>
                    <!--render facet: 123:1058;a-->
                    </button>
                    <div class="refreshContainer" data-aura-rendered-by="125:1058;a"><span class="asOfDate" data-aura-rendered-by="128:1058;a">As of Yesterday at 10:​15 AM</span>
                        <button class="slds-button refreshButton uiButton" aria-live="off" type="button" data-aura-rendered-by="137:1058;a" data-aura-class="uiButton">
                            <!--render facet: 138:1058;a--><span class="assistiveText" data-aura-rendered-by="141:1058;a">Refresh</span>
                            <lightning-icon class="slds-icon-utility-refresh slds-icon_container" data-data-rendering-service-uid="602" data-aura-rendered-by="135:1058;a">
                                <lightning-primitive-icon lightning-primitiveicon_primitiveicon-host="">
                                    <svg lightning-primitiveIcon_primitiveIcon="" focusable="false" data-key="refresh" aria-hidden="true" class="slds-icon slds-icon-text-default slds-icon_xx-small">
                                        <use lightning-primitiveIcon_primitiveIcon="" xlink:href="/_slds/icons/utility-sprite/svg/symbols.svg?cache=9.28.0#refresh"></use>
                                    </svg>
                                </lightning-primitive-icon><span class="slds-assistive-text">Refresh</span></lightning-icon>
                        </button>
                    </div>
                    </span>
                </div>
            </div>
        </div>
        <div class="slds-card__footer" data-aura-rendered-by="930:0">
            <!--render facet: 931:0-->
        </div>
    </article>
</div>

我正在尝试为大部分代码找到动态 xpath。当我从 chropath 中提取动态 xpath 时,我收到一个非常大的响应,它太大而无法包含在测试中

我尝试修剪从 chropath 中提取的动态 xpath,但似乎无法这样做。我已将相关的代码部分大写。

更多加载报告图表...为屏幕阅读器用户启用此 ChartEnable 等效表的选项卡导航图表:无标题无标题无标题无标题无标题无标题无标题
                        <!--render facet: 111:1058;a-->
                    </div>
                </div>
            </div>
            <DIV CLASS="LIGHTNING" DATA-AURA-RENDERED-BY="113:1058;A"><SPAN CLASS="REPORTFOOTER" DATA-AURA-RENDERED-BY="114:1058;A"><BUTTON CLASS="SLDS-BUTTON NAVIGATEBUTTON UIBUTTON" ARIA-LIVE="OFF" TYPE="BUTTON" DATA-AURA-RENDERED-BY="118:1058;A" DATA-AURA-CLASS="UIBUTTON"><!--RENDER FACET: 119:1058;A--><SPAN CLASS=" LABEL BBODY" DIR="LTR" DATA-AURA-RENDERED-BY="121:1058;A">VIEW REPORT</SPAN>
                <!--render facet: 123:1058;a-->
                </button>
                <div class="refreshContainer" data-aura-rendered-by="125:1058;a"><span class="asOfDate" data-aura-rendered-by="128:1058;a">As of Yesterday at 10:​15 AM</span>
                    <button class="slds-button refreshButton uiButton" aria-live="off" type="button" data-aura-rendered-by="137:1058;a" data-aura-class="uiButton">
                        <!--render facet: 138:1058;a--><span class="assistiveText" data-aura-rendered-by="141:1058;a">Refresh</span>
                        <lightning-icon class="slds-icon-utility-refresh slds-icon_container" data-data-rendering-service-uid="602" data-aura-rendered-by="135:1058;a">
                            <lightning-primitive-icon lightning-primitiveicon_primitiveicon-host="">
                                <svg lightning-primitiveIcon_primitiveIcon="" focusable="false" data-key="refresh" aria-hidden="true" class="slds-icon slds-icon-text-default slds-icon_xx-small">
                                    <use lightning-primitiveIcon_primitiveIcon="" xlink:href="/_slds/icons/utility-sprite/svg/symbols.svg?cache=9.28.0#refresh"></use>
                                </svg>
                            </lightning-primitive-icon><span class="slds-assistive-text">Refresh</span></lightning-icon>
                    </button>
                </div>
                </span>
            </div>
        </div>
    </div>
    <div class="slds-card__footer" data-aura-rendered-by="930:0">
        <!--render facet: 931:0-->
    </div>
</article>

我需要一个更短的动态 xpath

标签: seleniumxpath

解决方案


这行得通吗?

//button[text() = 'VIEW REPORT' or text() = 'view report' or text() = 'View Report']

如果页面中显示了多个查看报告链接,您可以选择一个项目,例如

(//button[text() = 'view report'])[1]

推荐阅读