我正在尝试单击显示/可见/存在的按钮。
手动操作时,用户可以点击按钮 如果测试已执行,您会注意到它正在尝试单击按钮,但没有任何事情发生。
我也尝试过很长时间的等待,并尝试在自动化过程中手动点击它 但是,点击它时,也没有任何事情发生。
我无法共享该网站,因为它位于代理中。
这是按钮的HTML,看起来很正常:
<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 = element.all(by.cssContainingText('span', 'Save')).last();
it('should click the Save button.', function() {
global.elmCBSave.click();
});
我也尝试过使用browser.executeSrcipt,这在通过控制台执行时有效:
browser.executeScript('$(".x-btn-inner.x-btn-inner-default-small:eq(3)").click()')
答案 0 :(得分:0)
您可以尝试一些事项。
请务必将done
传递给您的回调并处理点击事件
it('should click the Save button.', function(done) {
global.elmCBSave.click().then(function(){
done();
});
});
此外,我倾向于设置一个预期的条件来等待元素可点击:http://www.protractortest.org/#/api?view=ProtractorExpectedConditions.prototype.elementToBeClickable
var EC = protractor.ExpectedConditions;
// Waits for the element with id 'abc' to be clickable.
it('should click the Save button.', function(done) {
browser.wait(EC.elementToBeClickable($('#abc')), 5000).then(function(){
global.elmCBSave.click().then(function(){
done();
});
});
});