按钮在e2e中无法点击

时间:2016-05-05 04:53:18

标签: protractor ionic2

我的app中有一个id =“logout”的按钮,当我用这个id点击量角器时我得到错误

$ ./bin/resistor2

Enter the colours of the resistor's three bands,
beginning with the band nearest to the end.
Band 1 => green
Band 2 => blue
Band 3 => yellow
Resistor value : 560 000 -ohms

Do you want to decode another resistor (y/n)? y

Enter the colours of the resistor's three bands,
beginning with the band nearest to the end.
Band 1 => red
Band 2 => orange
Band 3 => orange
Resistor value : 23 000 -ohms

Do you want to decode another resistor (y/n)? n

我的HTML是

it('4 should click Log out', () => {    
         element.all(by.id('logOut')).click();
        browser.driver.sleep(5000);        
    });

我的终端错误是

<ion-buttons end>
        <button (click)='signOut()'>
            <ion-icon id="logOut"name="log-out"></ion-icon>
        </button>
    </ion-buttons>

3 个答案:

答案 0 :(得分:0)

量角器说它找到了带id="logOut"的元素,但如果它试图点击该元素,则会点击该屏幕位置的其他内容(button class="bar-button")。

直观地查看您的页面并确认没有与您的注销按钮重叠的内容。或者你可能需要将id放在<button>元素而不是图标上,因此量角器可以点击正确的东西。

请注意,此行为可能与chrome(对于无法点击重叠元素似乎更严格)vs firefox(有时可能会点击其他元素下方的元素)有所不同。

答案 1 :(得分:0)

要添加@ martin770的绝佳解释,有一个元素会“悬停”您想要点击的所需元素。我怀疑这是因为应用程序的布局已损坏/已调整大小。尝试最大化浏览器窗口,将其放入配置中的onPrepare()

browser.driver.manage().window().maximize();

答案 2 :(得分:0)

所以我最近遇到了类似的问题,窗口大小不是问题,而是最终成为叠加/背景问题。不确定这是不是你的问题,但我认为我会把它扔出去。以下是本文的link以供参考。

在搜索之前添加睡眠(在Protractor API docs中列出)让我在旋转轮子后移动。最后通过流程得到了browser.wait。

it('4 should click Log out', () => {
    browser.sleep(1000);
    element(by.id('logOut')).click();        
});

-or-

var EC = protractor.ExpectedConditions;
var logoutButton = element(by.id('logOut'));
browser.wait(EC.elementToBeClickable(logoutButton), 5000);
logoutButton.click();

祝你好运!