2017-08-25 84 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)等待組件呈現。你也可以通過下一步行動來解決問題,我希望這會對你有所幫助。