起始页面角度。通过单击一个按钮将转到无角登录页面。登录后,其余页面都是有角的。
我正在使用 async / await 。
waitForAngularEnable
( true ),但无效。waitForAngularEnable
( true ),但这没有
工作。timeOut
,但效果也不佳。waitForAngularEnable
( false )时有效。我无法使用量角器waiForAngular中的内置功能,该功能要等到角度加载后才能使用。当前使用waitForAngularEnable(false)我正在使用browser.driver.wait(until.elementsLocated(by.id(value)),30000)手动处理它;或等待browser.wait(ExpectedConditions.presenceOf(ele),30000);。这样就可以了。版本-
“量角器”:“ ^ 5.4.2”
“节点”:10.15.3
“ target”:“ es6”
“ cucumber”:“ ^ 5.1.0”,
“ cucumber-html-reporter”:“ ^ 5.0.0”
ScriptTimeoutError:脚本 超时:30秒内未收到结果
(会话信息:chrome = 74.0.3729.169)
(驱动程序信息:chromedriver = 74.0.3729.6
(255758eccf3d244491b8a1317aa76e1ce10d57e9-refs / branch-heads / 3729 @ {#29})),平台= Windows NT 10.0.17763 x86_64) 在Object.checkLegacyResponse
(C:\ Automation \ General \ node_modules \ selenium-webdriver \ lib \ error.js:546:15) 在parseHttpResponse(C:\ Automation \ General \ node_modules \ selenium-webdriver \ lib \ http.js:509:13)
在doSend.then.response(C:\ Automation \ General \ node_modules \ selenium-webdriver \ lib \ http.js:441:30)
在process._tickCallback(内部/进程/next_tick.js:68:7) 来自:任务:Protractor.waitForAngular()-定位器:By(xpath,// span [@ class ='title__subtext'])
答案 0 :(得分:0)
您在做什么(根据我对问题的理解)
await browser.waitForAngularEnabled(false);
(但是量角器没有响应,因为您位于非角度页面上)您应该做什么
await browser.waitForAngularEnabled(false);
简单来说,当您仍在角度页面上时,必须禁用等待角度
P.S。反之亦然。如果您要从非角度页面导航回到角度页面,则仅当您登陆角度页面时才必须启用该功能
答案 1 :(得分:0)
可以在同一测试中多次使用waitForAngularEnabled
,但是需要明确添加browser.get
。您可以使用以下内容:
// do things on your Angular application
waitForAngularEnabled(false)
// do things on non-angular page
waitForAngularEnabled(true)
browser.get('/home') // this is a page from your Angular application
browser.get
函数将一直阻塞,直到加载“ Angular”页面为止。
答案 2 :(得分:-1)
对于Angular应用,量角器将等待Angular Zone
稳定下来。这意味着长时间运行的异步操作将阻止您的测试继续进行。要解决此问题,请在“ Angular Zone”之外运行以下任务。
可能需要将此超时设置为补丁,直到在应用程序级别解决该问题为止
allScriptsTimeout: 60000
找到了一篇很好的文章: https://valor-software.com/articles/testing-with-protractor-how-to-fix-synchronization-issues.html