2017-06-13 43 views
0

我有一個場景,當我點擊網站A中的元素時,它會在新選項卡中的網站B中打開。我可以導航到網站B的新選項卡,但必須使用我的客戶希望我避免使用的browser.sleep()。我嘗試使用Promise之類的元素(網站A).click()。然後(函數(){getallwindowshandle,然後移動到我選擇的窗口});但在這裏我也必須使用browser.sleep()等待量角器加載在新選項卡中打開的數據

有人可以幫助我如何克服browser.sleep()導航到量角器的新窗口。

回答

1

最佳做法是使用量角器.ExpectedConditions等待,直到目標元素可見或啓用等等。使用量角器的預期條件,您可以使量角器等待,直到下一個標籤準備好繼續。你可以按照下面的代碼:

代碼

EC=protractor.ExpectedConditions; 

    targetEleOnNewTab=element(locator)//find out an element on new tab 
    //keep this line of code after switching to new tab before performing any 
    //operation on new tab 
    browser.wait(EC.visibilityOf(targetEleOnNewTab),15000,'Ele Not Visible'); 
+0

我有很多頁面,將在標籤中打開。這對於正在努力獲取網頁上的特定元素並找到該頁面的標題的應用程序來說並不理想。另外,我的網頁非常動態,下次運行測試腳本時,元素可能是其他位置或頁面中的其他位置。我基本上想要的是一個泛型函數,它將吐出當前頁面的標題,而不需要任何輸入。 –