量角器-在For Each中按不按预期的方式单击 [英] Protractor - click within For Each not behaving as expected

查看:79
本文介绍了量角器-在For Each中按不按预期的方式单击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

遵循量角器代码

const tabs = await element.all(by.id('tab'));
tabs.forEach(async tab => {
  tab.click().then(function() {
  element.all(by.id('radio1')).click();
});
}); 
 await element(by.id('saveAndContinue')).click();

radio1仅在最后一个选项卡中单击,因为saveAndContinue的最后一行是隐藏的,因此click()它的失败

radio1 is only clicked in last tab because of which last line of saveAndContinue is hidden and thus click() of it fails

虽然睡眠确实在FOR循环之外起作用,但当我想在radio1单击之前留出时间时,

While Sleep does work outside of FOR loop it doesn't when i want to allow time before radio1 click

编辑1 :问题是每行都在执行,但是单选1单击了最后一个Tab,而不是先前单击的Tab。使用Tab键单击可以快速使radio1响起来。

EDIT 1: Problem is every line is executing BUT radio1 clicks for last Tab not previously clicked tab. Tab click is fast for radio1 to be clikced.

推荐答案

由于您没有附加HTML和应用程序的屏幕截图,因此请点击此处是我的黑暗中的镜头...试试这个,让我知道是否可行

Since you didn't attach HTML and a screenshot of your app, here is my shot in a dark... Try this and let me know if works

let tabs = element.all(by.id('tab'));
let radioButtons = element.all(by.id('radio1'));

let tabCount = await tabs.count();
for (let i = 0; i < tabCount; i++) {
  await tabs.get(i).click();
  let radioCount = await radioButtons.count();
  for (let j = 0; j < radioCount; j++) {
    await radioButtons.get(j).click();
  }
}
await element(by.id('saveAndContinue')).click();

这篇关于量角器-在For Each中按不按预期的方式单击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆