Forum Discussion
I have adjusted the code to include the following example
let navigate = Aliases.browser.page.nav
let navbar = Aliases.browser.page.header
if (!navigate.WaitAliasChild('carrier', 5000).Width == 0 || navigate.WaitAliasChild('carrier', 5000).Exists) {
Log.Message("carrier exists");
}
else {
Log.Message("carrier ");
}
}
Even in this case, the test case fails and stops because item does not exist.
The function will not go to else
Right... because you're calling code in your IF clause for an object that might not exist yet. Your "Exists" check should happen first, before anything else, as anything else will fail if the object does not exist.
let navigate = Aliases.browser.page.nav let navbar = Aliases.browser.page.header if (navigate.WaitAliasChild('carrier', 5000).Exists){ if (navigate.WaitAliasChild('carrier', 5000).Width != 0) { Log.Message("carrier exists"); } else { Log.Message("carrier "); } }
- TanyaYatskovska6 years agoSmartBear Alumni (Retired)
- AlexKaras6 years agoChampion Level 3
Hi,
> if (!navigate.WaitAliasChild('carrier', 5000).Width == 0 || navigate.WaitAliasChild('carrier', 5000).Exists)
> because you're calling code in your IF clause for an object that might not exist yet.
If you don't like nested conditions, you may use the fact that JScript uses short circuit conditionals. The code in this case may look like this:
if ((navigate.WaitAliasChild('carrier', 5000).Exists) && (navigate.carrier.Width > 0))
// sucess
else
// failure
Related Content
- 2 years ago
- 6 years ago
Recent Discussions
- 13 hours ago
- 23 hours ago
- 2 days ago