簡體   English   中英

量角器不等待頁面加載

[英]Protractor not waiting for page load

我用量角器創建了一個基本測試,單擊一個元素,然后在新頁面上檢查給定元素是否存在,但是量角器似乎沒有等待,它在單擊之后但在加載新頁面之前運行了斷言。 我要查找的元素在兩個頁面上都可用,因此量角器會在加載新頁面之前在舊頁面上看到該元素。 有人可以告訴我我在做什么錯嗎?

it('should check when new page is loaded', function () {
button.click().then(function (){
    return expect(newElement).to.exist;
});

首先,將“ getPageTimeout”變量添加到您的量角器配置文件中。

如果尚未使用它。這是根據應用程序中的平均頁面加載時間設置全局頁面超時。

conf.js

getPageTimeout: 120000,//change it based on your app response time

如果仍然不能解決問題,則在檢查實際要查找的元素之前,請驗證下一頁的頁面標題(假定其與上一頁不同)。

it('should check when new page is loaded', function () {
button.click().then(function (){
    browser.getCurrentUrl();
    browser.getTitle().then(function (title) {
            expect(title).toEqual('Next Page Title');
        });
   return expect(newElement.isDisplayed()).toBeTruthy();
});

即使這不能幫助您使用預期的條件,也要明確等待幾個預定義的條件。 如果您要等待某個元素出現,請執行以下操作:

var EC = protractor.ExpectedConditions;

var e = element(by.id('xyz'));
browser.wait(EC.presenceOf(e), 10000);

expect(e.isPresent()).toBeTruthy();

您可以在配置文件中使用以下方法

jasmineNodeOpts: {
    showColors: true,
    includeStackTrace: true,
    defaultTimeoutInterval: 1440000
},

在Spec文件中,您可以根據頁面和對象的可見性自定義等待時間

browser.sleep(20000);

我希望如果您適當地設置等待時間,上述方法在所有情況下都能正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM