我的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>
答案 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();
祝你好运!