我在量角器用茉莉花中遇到以下问题
由于我的应用程序中的顶部导航栏固定,因此单击/鼠标悬停不起作用。我需要在网页上单击/执行鼠标悬停。 不幸的是,该元素显示在该固定导航栏的后面。因此,滚动直到出现元素并按x和y坐标单击均不起作用。
我的依赖项是:
量角器版本5.2.2
节点8.9.3
硒独立版3.13
chrome驱动程序2.40
chromebrowser v67
OS- Windows 10
预先感谢
答案 0 :(得分:0)
尝试使用原型executeScript
只需尝试使用id,name或xpath从浏览器控制台中单击该元素。
例如:
var el = element(by.module('header'));
var tag = browser.executeScript('return arguments[0].click()', el).then(function() {
expect(something).toMatch(something);
});
答案 1 :(得分:0)
另一种方式是,与Bharath Kumar S一样,并知道JeffC的警告是这种方式正在作弊,我遇到了类似的问题,即App-Header一直妨碍我的点击方式,而且我知道我愿意永远不需要它(例如,找到其他导航或登出方式而不检查其中的内容)。因此,我进行了以下操作,从而解决了该问题。请注意,如果刷新屏幕,则必须再次调用它。还要注意,我正在使用https://github.com/hetznercloud/protractor-test-helper中的许多函数,这些函数可以实现它们的名称。
var removeAppHeaderIfAny = async function() {
//this function hides the app header
//it is useful to avoid having covers there when Protractor worries that something else will get the click
let found = false;
try {
found = await waitToBeDisplayed(by.className("app-header"), 2000);
} catch (e) {
let s: string = "" + e;
if (s.search("TimeoutError") != 0) flowLog("presumably fine, cover already removed: " + e);
found = false;
}
if (!found) return;
if (found) {
let coverElement = await element(by.className("app-header"));
browser.executeScript(
"arguments[0].style.visibility='hidden';",
coverElement
);
await waitToBeNotDisplayed(by.className("app-header"), 10000);
}
return;
//note after this is called you will not see the item, so you cannot click it
};
当我看代码时,它令我印象深刻,我可以在末尾删除if(找到)和相关的括号。但是我粘贴了一些我知道一直有效的东西,所以我不会对此感到困惑。
如前所述,我知道我愿意放弃使用应用程序头,这有点粗糙。