Reputation: 2823
I am struggling with fixing time out issue in protractor with below code.
dashboardPage.ts
import { browser, by, element } from 'protractor/globals';
class DashboardPage {
supportButton = element.all(by.id('support-dashboard-btn')).first();
supportClick(): void {
this.supportButton.click();
}
}
export = DashboardPage;
supportPage.spe.ts
beforeEach(() => {
loginPage.getPage();
loginPage.fillEmail(data.users[0].email);
loginPage.fillPassword(data.users[0].password);
loginPage.loginClick();
browser.waitForAngular();
browser.wait(EC.visibilityOf(dashboardPage.supportButton), 3000).then(function () { *** step Failed: Wait timed out after 3056ms
dashboardPage.supportClick();
}), function (error) {
expect(true).toBe(false);
};
Gone through few links like below. Unfortunately nothing worked for me.
How to have protractor reliable results?
Protractor: wait method isn't work
Error:
Failed: Wait timed out after 3056ms
Stack:
Error: Wait timed out after 3056ms
at C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2364:22
at ManagedPromise.invokeCallback_ (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1379:14)
at TaskQueue.execute_ (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2913:14)
at TaskQueue.executeNext_ (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21)
at asyncRun (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2775:27)
at C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:639:7
at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: <anonymous wait>
at ControlFlow.wait (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2352:17)
at WebDriver.wait (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:712:29)
at Browser.to.(anonymous function) [as wait] (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\built\browser.js:61:29)
at Object.<anonymous> tests\Protractor\Support\supportPage.spec.ts:33:17)
at C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:96:23
at new ManagedPromise (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1082:7)
at controlFlowExecute (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:82:18)
at TaskQueue.execute_ (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2913:14)
at TaskQueue.executeNext_ (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21)
at asyncRun (C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2820:25)
at C:\Users\My\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:639:7
at process._tickCallback (internal/process/next_tick.js:103:7)
Upvotes: 1
Views: 11577
Reputation: 3645
Thats a valid error saying that Protarctor timed out waiting for the specific period(3000ms
) in the below browser.wait
for element dashboardPage.supportButton
browser.wait(EC.visibilityOf(dashboardPage.supportButton), 3000)
May be you have to increase the timeout or check if the element definition is correct
Also another advice, you neednt use browser.waitForAngular() , Protractor automatically does that for you
Upvotes: 1