在我们的应用程序中,存在两页上有网格的情况。我想从网格中获取列的文本。但两个网格的列文本都没有什么不同的HTML。
第1页网格HTML:
<div class="ngHeaderContainer" ng-style="headerStyle()" style="width: 598px; height: 30px;">
<div class="ngHeaderScroller" ng-style="headerScrollerStyle()" ng-header-row="" style="height: 30px;">
<div class="ngHeaderCell ng-scope col0 colt0" ng-class="col.colIndex()" ng-repeat="col in renderedColumns" ng-style="{ height: col.headerRowHeight }" style="height: 30px;">
<div class="ngVerticalBar ngVerticalBarVisible" ng-class="{ ngVerticalBarVisible: !$last }" ng-style="{height: col.headerRowHeight}" style="height: 30px;"> </div>
<div ng-header-cell="">
<div class="ngHeaderSortColumn " ng-class="{ 'ngSorted': !col.noSortVisible() }" ng-style="{'cursor': col.cursor}" style="cursor: pointer;" draggable="true">
<div class="ngHeaderText ng-binding colt0" ng-class="'colt' + col.index" ng-click="col.sort($event)">Request ID</div>
为此,我写了xpath //div[@class='ngHeaderContainer']//div[@ng-header-cell='']//div[contains(@class,'ngHeaderText')]
网格HTML
<div class="ngHeaderContainer" ng-style="headerStyle()" style="width: 598px; height: 30px;">
<div class="ngHeaderScroller" ng-style="headerScrollerStyle()" ng-header-row="" style="height: 30px;">
<div class="ngHeaderCell ng-scope col0 colt0" ng-class="col.colIndex()" ng-repeat="col in renderedColumns" ng-style="{ height: col.headerRowHeight }" style="height: 30px;">
<div class="ngVerticalBar ngVerticalBarVisible" ng-class="{ ngVerticalBarVisible: !$last }" ng-style="{height: col.headerRowHeight}" style="height: 30px;"> </div>
<div ng-header-cell="">
<div class="ng-scope ng-binding" ng-click="onColumnClick( 3, 'select', $event)">
Request ID
<img class="" ng-click="onColumnClick( 3, 'delete', $event)" src="styles/images/common/delete.png" ng-show="true">
<img>
</div>
为此,我写了xpath //div[@class='ngHeaderContainer']//div[@ng-header-cell='']/div
对于网格,我已经编写了一个类,并且在该类中我返回列名称的方法。因为,对于两个不同页面上的网格,xpath到列名称是不同的,我不能使用相同的方法。
有人可以帮助我获取xpath,它可以用来返回两个页面网格的列名吗?
答案 0 :(得分:1)
这个xpath有希望这样做。我遇到了类似的问题。从here获得帮助。这应该返回两个元素
// * [contains(@class,&#39; ng-binding#39;)]