2017-08-25 79 views
0

我从我的测试下面的代码,是造成我一些问题:JS - 等功能完成

var array = [] 
for (var b = 0; b < ToAdd.length; b++) { 
     page.open(itemsToAdd[b]) 
     page.load() 
     array.push(page.titleElement) 
     page.addToCartButton.click() 
} 

我想到的是,array.push(page.titleElement)page.addToCartButton.click()前完成它的执行。

我如何做到这一点是JS?

问候。

+0

目前发生了什么? – Amogh

+0

在第二次迭代 - 它抱怨它无法找到'page.titleElement'。如果我将这些代码评论为好。同样,如果我评论'page.addToCartButton.click()'并保留'page.titleElement',它就可以工作。我只是可以不让他们在同一时间 – userMod2

+0

你已经回答了你自己,BTW答案是由队友给出。 – Amogh

回答

1

如果您正在等待所有推送完成,请将page.addToCartButton.click()放在厕所外面。否则,代码应该很好。

+0

但我需要添加数组itemsToAdd [b]的所有项目 - 所以如果我点击addtoCart出它将如何实际添加它们 – userMod2

+0

我想'ToAdd.length' for条件是要添加的总项目,所以建议如果您取出点击事件然后将添加项目。 – Amogh

+0

@Amogh - 谢谢,但对不起 - 仍然不明白怎么看 - 如果我拿出点击动作,但我的重复操作步骤是:转到页面 - >获取标题 - >点击添加购物车 – userMod2

0

webdriver.io是一个框架,只有当您可以看到组件时,您才可以选择它来点击或执行一些操作,如果没有,您不能执行关于该组件的操作。

更重要的是,框架在DOMS呈现之前可能找不到它。 因此,您可以使用browser.pause(3000)等待组件呈现。你也可以通过下一步行动来解决问题,我希望这会对你有所帮助。