![](/img/trans.png)
[英]Protractor is not waiting for page to load though the element is present
[英]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.