Protractor 正在与量角器菜单单击进行斗争

Protractor 正在与量角器菜单单击进行斗争,protractor,angularjs-e2e,Protractor,Angularjs E2e,因此,我的量角器选择如下所示: element(by.css('#TheMenu > ul > li.rmItem.rmFirst > span')).getText().then(function(txt){ console.log('**** WE HAVE THE MENU !!!! ****'); }); DOM结构如下所示: 我的报告 第一个下拉菜单 第一个菜单项 第二个菜单项 第二个下拉菜单 第二项的第一项 最后

因此,我的量角器选择如下所示:

element(by.css('#TheMenu > ul > li.rmItem.rmFirst > span')).getText().then(function(txt){
        console.log('**** WE HAVE THE MENU !!!! ****');
    });
DOM结构如下所示:


  • 我的报告
    • 第一个下拉菜单
        第一个菜单项 第二个菜单项
    • 第二个下拉菜单
      • 第二项的第一项
    • 最后一个菜单项

这里是一个猜测-这是一个时间问题,您只需等待:


此外,还有一个相关链接,可以帮助您关闭额外的窗口:


我得到了“等待在5000ms后超时”,但我认为这与另一个浏览器窗口相关,“成功”登录事件会在后台弹出。因此,我得到了主应用程序的所有菜单等,加上一个愚蠢的浏览器窗口,也会启动,以验证您已正确登录。是的,奇怪。@bob.mazzo谢谢!啊,让我们尝试关闭该窗口,尝试应用此解决方案:。请确保你有2个窗口句柄。看起来这个解决方案有很大的潜力。我会处理好的,尽快寄回来。非常感谢,亚历克斯!你能添加那个链接吗http://stackoverflow.com/questions/29502255/is-there-a-way-to-close-a-tab-in-webdriver-or-protractor/29505926#29505926您的原始答案也是这样吗?非常有用。
EC.presenceOf()
不起作用。我一直得到
element不可见错误:element不可见
,除非我放了一个browser.sleep(1000)。这就解决了问题。奇怪的
var EC = protractor.ExpectedConditions;
var elm = $('#TheMenu > ul > li.rmItem.rmFirst > span');

browser.wait(EC.visibilityOf(elm), 5000);
elm.getText().then(console.log);