我已经尝试过以下代码,但未点击该元素。
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'));
注意:使用了cssContainingText,因为“取消”按钮具有相同的css:
<span id="button-1013-btnInnerEl" data-ref="btnInnerEl" unselectable="on" class="x-btn-inner x-btn-inner-default-small">Cancel</span>
我也试过发送TAB键然后按ENTER键,但没有任何反应,它只关注按钮。
答案 0 :(得分: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();
这仍然是使用动态选择。
browser.findElement(by.cssSelector("*[id^='button'][id$='InnerEl']")).click();
了解详情