2017-03-28 1 views
0

이미 다음 코드를 시도했지만 요소가 클릭되지 않았습니다.요소를 클릭하는 다른 방법이 있습니까?

global.elmCBSave.click(); 
    browser.sleep(2000); 
    browser.actions().mouseMove(global.elmCBSave.getWebElement()) 
     .click(protractor.Button.LEFT).perform();  
    browser.sleep(2000); 
    browser.actions().mouseMove(global.elmCBSave.getWebElement()) 
     .mouseDown().mouseUp() 
     .click(protractor.Button.LEFT).perform();  
    browser.sleep(2000); 

요소의 속성은 버튼으로 태그 지정되지 않았으며 스팬으로 태그되었으며 링크처럼 보입니다.

<a class="x-btn x-unselectable x-box-item x-toolbar-item x-btn-default-small" style="min-width: 75px; right: auto; left: 328px; top: 0px; margin: 0px;" hidefocus="on" unselectable="on" role="button" aria-hidden="false" aria-disabled="false" id="button-1011" tabindex="-1" data-componentid="button-1011"> 
     <span id="button-1011-btnWrap" data-ref="btnWrap" role="presentation" unselectable="on" style="" class="x-btn-wrap x-btn-wrap-default-small "> 
      <span id="button-1011-btnEl" data-ref="btnEl" role="presentation" unselectable="on" style="" class="x-btn-button x-btn-button-default-small x-btn-text x-btn-button-center "> 
       <span id="button-1011-btnIconEl" data-ref="btnIconEl" role="presentation" unselectable="on" class="x-btn-icon-el x-btn-icon-el-default-small " style=""></span> 
       <span id="button-1011-btnInnerEl" data-ref="btnInnerEl" unselectable="on" class="x-btn-inner x-btn-inner-default-small">Save</span> 
      </span> 
     </span> 
    </a> 

global.elmCBSave은 다음과 같습니다

global.elmCBSave = element(by.cssContainingText('.x-btn-inner.x-btn-inner-default-small', 'Save')); 

참고 : 취소 버튼이 같은 CSS를 가지고 있기 때문에 cssContainingText 사용 하였다 : 나는 또한 키 입력 후 TAB 키를 전송하고 시도

<span id="button-1013-btnInnerEl" data-ref="btnInnerEl" unselectable="on" class="x-btn-inner x-btn-inner-default-small">Cancel</span> 

, 아무 일도 일어나지 않으면 버튼에 초점을 맞 춥니 다.

답변

0

다음 중 하나를 시도해보십시오. 희망이 당신을 돕는다.

보시다시피 저장 및 취소에는 동일한 값이 있으므로 선택기를 사용하여 분리 할 수 ​​없습니다.

browser.findElement(by.xpath("//span[contains(@id,'button')][2]")).click(); 
browser.findElement(by.xpath("//span[contains(@id,'button')][3]")).click(); 

을 또는 텍스트를 통해 이동 : 다음과 같이 그들을 인덱싱 시도 할 수 있습니다.

browser.findElement(by.xpath("//span[contains(text(), 'Save')]").click(); 
browser.findElement(by.xpath("//span[contains(text(), 'Cancel')]").click(); 

는 Dyanmic 선택을 사용하는 남아있다.

browser.findElement(by.cssSelector("*[id^='button'][id$='InnerEl']")).click(); 

는 정수 동적 있기 때문에 더에서 Protractor API

+0

# 1과 # 3 라인을 사용할 수 없습니다 알아보세요. # 2 ".click()"앞에 닫는 괄호를 추가했지만 여전히 요소를 클릭하지 않았습니다. –

+0

'class = "x-btn-inner x-btn-inner-default-small"데이터 참조 = "btnInnerEl" 이들은 또한 동적입니까? –

+0

이것은 현재 요소입니다 global.elmCBSave = 요소 (by.cssContainingText ('.x-btn-inner.x-btn-inner-default-small', 'Save')); –

관련 문제