繁体   English   中英

量角器测试中的浏览器自动关闭

[英]Browser in protractor test closes automatically

我一直在进行量角器测试,该测试将于中期测试结束。 我正在用量角器用茉莉花。 defaultTimeoutInterval设置为defaultTimeoutInterval: 8000000 ,allScriptsTimeout设置为allScriptsTimeout: 10000000 对于每个it()语句,我的测试将花费近一个小时来运行。 这是因为它们正在等待某些对象出现。 当我增加一些内部时间以使对象显示得更快时,浏览器不会关闭。 但这会导致测试失败,因为我需要等待更长的时间。 因此,正在发生的情况是浏览器正在自行关闭中期测试。 我有4个浏览器实例正在运行。 第一个browserInstance在35分钟后关闭,第二个browserInstance在5分钟后关闭。 我仍然需要这些浏览器来继续运行测试。 我的代码中任何地方都没有browser.close() ,我也没有提示他们关闭的方法。 这是我得到的唯一错误:

系统信息:os.name:'Mac OS X',os.arch:'x86_64',os.version:'10 .11.5',java.version:'1.8.0_73'驱动程序信息:driver.version:WebDriverError未知(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:27:10)在Object.checkLegacyResponse(/ usr / local / lib / node_modules / protractor / node_modules / selenium-webdriver /位于parseHttpResponse(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:538:13)处的parseHttpResponse(/ usr / local / lib / node_modules /位于ManagedPromise.invokeCallback_(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1379:14)的量角器/node_modules/selenium-webdriver/http/index.js:472:11 TaskQueue.executeNext_(/ usr / local / lib / node_modules / protractor / node_modules / selenium)上的TaskQueue.execute_(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2913:14) -webdriver / lib / promise.js:2896:21)位于/ usr / local / lib / node_modules / protractor / node_mo 在/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7处的dules / selenium-webdriver / lib / promise.js:2820:25在process._tickCallback(node.js :369:9)来自:任务:Protractor.waitForAngular()-定位器:WebDriver.schedule(/ usr / local / lib / node_modules / protractor / node_modules / selenium-webdriver /中的(css选择器,i.glyphicon-bell)在runWaitForAngularScript(/ usr / local / lib / node_modules / protractor /)的ProtractorBrowser.executeAsyncScript_(/usr/local/lib/node_modules/protractor/built/browser.js:236:28)的lib / webdriver.js:377:17)在ElementArrayFinder.getWebElements(/ usr / local / lib / node_modules /)的ProtractorBrowser.waitForAngular(/usr/local/lib/node_modules/protractor/built/browser.js:270:16)处构建/browser.js:264:30)位于ElementArrayFinder.getWebElements(/usr/local/lib/node_modules/protractor/built/element.js:261:56)的Protractor / built / element.js:155:29)(位于ElementArrayFinder.ElementFinder.getWebElements(/ usr / local / lib / node_modules / protractor / built / element.js: 717:39)在ElementArrayFinder.applyAction_(/usr/local/lib/node_modules/protractor/built/element.js:407:34)在ElementArrayFinder._this。(匿名函数)[单击](/ usr / local / lib /node_modules/protractor/built/element.js:101:30),位于ElementFinder。(匿名函数)[单击](/usr/local/lib/node_modules/protractor/built/element.js:742:22)发生错误ElementArrayFinder._this。(匿名函数)[单击时] ElementArrayFinder.applyAction_(/usr/local/lib/node_modules/protractor/built/element.js:406:27)[单击](/ usr / local / lib / node_modules / protractor /在/使用者/ Harman / webapp的ElementFinder中建立(/匿名元素)[点击](/usr/local/lib/node_modules/protractor/built/element.js:742:22) -qa-tests / js / tests / brackets / 4-player-bracket.js:203:64在ManagedPromise.invokeCallback_(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js: 1379:14)在TaskQueue.execute_(/ usr / local / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / pro / usr / local / lib / node_modules /上的TaskQueue.executeNext_(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21)上的mise.js:2913:14)在process._tickCallback(节点上的/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7处的protractor / node_modules / selenium-webdriver / lib / promise.js:2775:27 .js:369:9)来自:任务:在Object的控制流中运行它(“应该允许玩家1承认”)。 (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:79:14)位于ManagedPromise上的/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:16:5。在TaskQueue.execute_(/ usr / local / lib / node_modules / protractor / node_modules / selenium-webdriver)中的invokeCallback_(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1379:14) /lib/promise.js:2913:14)位于/ usr / local / lib的TaskQueue.executeNext_(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21) /node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2775:27来自异步测试:Suite出错。 (/Users/Harman/webapp-qa-tests/js/tests/brackets/4-player-bracket.js:189:9)。 (/Users/Harman/webapp-qa-tests/js/tests/brackets/4-player-bracket.js:126:5)。 (/Users/Harman/webapp-qa-tests/js/tests/brackets/4-player-bracket.js:13:1)

我正在运行webdriver 2.24 ,chrome的最新版本以及量角器version 4.0.9

我已从错误消息中删除了IP地址和主机名。

我认为核心问题是您正在尝试使用旧的硒版本在最新的浏览器上运行。应该是2.53.x。

请通过更改package.json文件中的版本,将量角器版本升级到最新版本,例如4.0.11,然后从命令提示符(在项目根目录中)执行:

npm update 

然后在命令提示符下使用以下命令更新您的Selenium驱动程序

webdriver-manager update

它将硒版本更新到最新,然后尝试再次运行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM