2014-11-04 7 views
0

페이지 번호 매기기의 바닥 글에 텍스트 상자가 있습니다. 이 텍스트 상자에는 아래 그림과 같이 위쪽 및 아래쪽 화살표가있는 텍스트 상자가 있습니다. 이 텍스트 상자 값은 다음 이전 버튼을 클릭 할 때 동적으로 변경됩니다.Selenium Webdriver의 위쪽 화살표와 아래쪽 화살표가있는 텍스트 상자에서 텍스트 가져 오기

이미지 URL은 : http://i.msdn.microsoft.com/dynimg/IC1380.jpg

이 DOM의 입력

<div ng-grid-footer="" class="ng-scope"><div ng-show="showFooter" class="ngFooterPanel ng-scope ui-widget-content ui-corner-bottom" ng-class="{'ui-widget-content': jqueryUITheme, 'ui-corner-bottom': jqueryUITheme}" ng-style="footerStyle()" style="width: 1920px; height: 55px;"> 
<div class="ngTotalSelectContainer"> 
    <div class="ngFooterTotalItems ngNoMultiSelect" ng-class="{'ngNoMultiSelect': !multiSelect}" style="margin-top: 8px"> 
     <span class="ngLabel ng-binding">Total Items: 810</span><span ng-show="filterText.length > 0" class="ngLabel ng-binding ng-hide">(Showing Items: 100)</span> 
    </div> 
    <div class="ngFooterSelectedItems ng-hide" ng-show="multiSelect"> 
     <span class="ngLabel ng-binding">Selected Items: 0</span> 
    </div> 
</div> 
<div class="ngPagerContainer ngNoMultiSelect" style="float: right; margin-top: 10px" ng-show="enablePaging" ng-class="{'ngNoMultiSelect': !multiSelect}"> 
    <div style="float:left; margin-right: 10px" class="ngRowCountPicker"> 
     <span style="float: left; margin-top: 8px" class="ngLabel ng-binding">Page Size:</span> 
     <select style="float: left;height: 29px; width: 100px" ng-model="pagingOptions.pageSize" class="ng-valid ng-dirty"> 
      <!-- ngRepeat: size in pagingOptions.pageSizes --><option ng-repeat="size in pagingOptions.pageSizes" class="ng-scope ng-binding" value="10">10</option><!-- end ngRepeat: size in pagingOptions.pageSizes --><option ng-repeat="size in pagingOptions.pageSizes" class="ng-scope ng-binding" value="25">25</option><!-- end ngRepeat: size in pagingOptions.pageSizes --><option ng-repeat="size in pagingOptions.pageSizes" class="ng-scope ng-binding" value="50">50</option><!-- end ngRepeat: size in pagingOptions.pageSizes --><option ng-repeat="size in pagingOptions.pageSizes" class="ng-scope ng-binding" value="100">100</option><!-- end ngRepeat: size in pagingOptions.pageSizes --> 
     </select> 
    </div> 
    <div style="float:left; margin-right: 10px; line-height:25px" class="ngPagerControl"> 
     <button class="ngPagerButton" ng-click="pageToFirst()" ng-disabled="cantPageBackward()" title="First Page"><div class="ngPagerFirstTriangle"><div class="ngPagerFirstBar"></div></div></button> 
     <button class="ngPagerButton" ng-click="pageBackward()" ng-disabled="cantPageBackward()" title="Previous Page"><div class="ngPagerFirstTriangle ngPagerPrevTriangle"></div></button> 

     <!--Input Textbox Which I want to Inspect --> 
     <input class="ngPagerCurrent ng-valid-number ng-valid-min ng-valid ng-valid-max ng-dirty" min="1" max="9" type="number" style="width:50px; height: 26px; margin-top: 1px; padding: 0 4px" ng-model="pagingOptions.currentPage"> 
     <!--END--> 

     <button class="ngPagerButton" ng-click="pageForward()" ng-disabled="cantPageForward()" title="Next Page"><div class="ngPagerLastTriangle ngPagerNextTriangle"></div></button> 
     <button class="ngPagerButton" ng-click="pageToLast()" ng-disabled="cantPageToLast()" title="Last Page"><div class="ngPagerLastTriangle"><div class="ngPagerLastBar"></div></div></button> 

     <button ng-controller="OmniSearchViewCtrl" id="page-summary-help-button" title="Help" class="ngPagerButton ng-scope" ng-click="handlePageSummaryHelpButtonClick()"> 
      <span class="ptipsicon ptipsicon-help" style="padding:0 6px; float:left"></span> 
     </button> 

    </div> 
</div> 

//*[@id="PageViewContainer"]/div/div[3]/div/div[2]/div[2]/input 

내 페이지 XPath는입니다 문제는 텍스트 상자에 값 : attribute가 없기 때문에 텍스트 상자에서 값을 가져올 수 없습니다. 아래 줄을 사용하여 텍스트를 얻으려고했지만 공백 만 표시합니다. 그러나 예외가 발생하지 않았습니다.

pageNumber = findElement(By.xpath(properties.getString("PageNumber"))).getText(); 
pageNumber = findElement(By.xpath(properties.getString("PageNumber"))).getAttribute("value"); 

반면이 시도를 할 때 예외가 발견되지 않았습니다.

pageNumber = findElement(By.xpath("//input[@id=\"PageViewContainer\"]"))).getText(); 

어떤 도움을 주시면 감사하겠습니다.

+0

properties.getString ("PageNumber")는 무엇을 반환합니까? – CharlieS

+0

방금 ​​속성 파일에서 xpath를 얻고 있습니다. 그것에 문제가 없다고 가정하십시오. 감사합니다 – vkrams

+0

텍스트가있을 때 요소를 검사하고 추출 할 텍스트가 포함 된 HTML을 표시해야합니다. xpath는 표시된 HTML 스 니펫과 관련이 없습니다. ID "PageViewContainer"가 표시된 요소가 없습니다. – CharlieS

답변

1
//*[@id="PageViewContainer"] 

xpath는 id가 "PageViewContainer"인 요소에 대한 검색으로 시작됩니다. HTML에는 이러한 요소가 없으므로 xpath는 아무 것도 반환하지 않습니다. 그런 다음 텍스트 값을 추출하기 위해 gettext에() 메소드를 사용할 수 있습니다

//div[@class='ngPagerControl']/input 

: 당신이 준 조각을 바탕으로

, 당신은에 의해 입력 요소를 찾을 수 있습니다.

+0

고마워 :-) – vkrams

관련 문제