2
我試圖通過xpath獲取webelement的文本。附上網頁的HTML內容, 通過xpath獲取webelement的文本
我用下面的代碼,
String v = driver.findElement(By.xpath("//div[1]/div[contains(@class, 'ng-scope ngRow')]//div[contains(@class, 'ngCell ng-scope col7 colt7')//"
+ "div[contains(@class, 'ngCellText ng-scope ngCellElement col7 colt7')]")).getText();
這引發錯誤「的表達是不是一個合法的表達式。‘代碼:’ 12" nsresult: 「0x805b0033(的SyntaxError)」 位置: 「」]」
當我縮小所述搜索直到
String v = driver.findElement(By.xpath("//div[1]/div[contains(@class, 'ng-scope ngRow')]")).getText();
它的作品,我得到特定行中的所有文字。但是,當我將其擴展到第一個代碼所示的列時,我會遇到錯誤。
HTML片段,
<div class="ng-scope ngRow even" ng-row="" ng-class="row.alternatingRowClass()" ng-click="row.toggleSelected($event)" ng-repeat="row in renderedRows" ng-style="rowStyle(row)" style="top: 0px; height: 30px;">
<div class="ngCell ng-scope pinned col0 colt0" ng-class="col.colIndex()" ng-repeat="col in renderedColumns" ng-style="{ 'cursor': row.cursor }" ng-dblclick="loadInstance(row.getProperty('incident_number'), 'ticket')" style="cursor: default;">
<div class="ngCell ng-scope col7 colt7" ng-class="col.colIndex()" ng-repeat="col in renderedColumns" ng-style="{ 'cursor': row.cursor }" ng-dblclick="loadInstance(row.getProperty('incident_number'), 'ticket')" style="cursor: default;">
<div class="ng-isolate-scope" data-target="actions_menu" context-menu="">
<div ng-style="{ 'cursor': row.cursor }" style="cursor: default;">
<div class="ngVerticalBar ngVerticalBarVisible" ng-class="{ ngVerticalBarVisible: !$last }"/>
<div ng-cell="">
<div class="ngCellText ng-scope ngCellElement col7 colt7" ng-class="col.colIndex()" tabindex="0">
<span class="ng-binding" ng-cell-text="">Closed</span>
</div>
</div>
</div>
</div>
</div>
在遇到錯誤之前,您的第二個XPath查詢是否可以進入DOM最遠?您是否可以發佈(作爲代碼)標記的相關部分,以便我們測試您的查詢? – xDaevax 2014-08-29 15:54:16
不,第二個查詢是有效的。如果我深入到第一個查詢中提到的下一個級別,它將失敗。 – ASANT 2014-08-29 15:56:27
帶有代碼的圖像不可讀。請用實際文字替換它們,縮進四個空格。然後,它會自動呈現爲HTML。 _But_:確定HTML的_relevant_片段,不要用很多標記來轟炸我們。 – 2014-08-29 16:23:16