2017-03-28 30 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是:用cssContainingText因为取消按钮具有相同的CSS:

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

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

我也试着发送TAB键,然后按ENTER键,但没有任何反应,它只关注按钮。

回答

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”data-ref =“btnInnerEl”'这是怎么回事?这些也是动态的? –

+0

这是我的当前元素 global.elmCBSave =元件(by.cssContainingText( '的x BTN-inner.x-BTN-内 - 缺省 - 小。', '保存')); –

相关问题