目前有一个与webdriver-manager 13绑定的修复程序。
好消息是,当这些更改发生时,我正在修复webdriver-manager。 您可以将Protractor 5.4.2与webdriver-manager 13一起使用。https://github.com/angular/webdriver-manager/pull/372但是,如果有多个连接,我不确定直接连接和本地如何工作节点模块目录中的webdriver-manager版本。
我们可以用量角器5释放webdriver-manager 13吗? 有可能,但是由于我在版本13中删除了对webdriver-manager的移动支持,因此这可能被认为是一项重大更改。
设置Protractor 5 + webdriver-manager 13版本的讨论标签。
我真的很惊讶,这没有激起更多的谈话。 我可能错了,但我认为5.4.2上的其他公司会因此受到打击,并且也迫切需要找到一种解决方法,而不是升级到6.0.0。
有人能猜出创建另一个5.xx版本所需的工作吗?
@cnishina在您回复之前,我曾尝试破解以获取最新的webdriver-manager与5.4.2配合使用,但运气不佳。 我只是:
webdriver-manager update
下载chromedriver 74node_modules\webdriver-manager\selenium
node_modules\protractor\node_modules\webdriver-manager\selenium
是的。 在查看驱动程序提供程序而不是5.4.2时,我正在查看master分支。 因此,要使13个工作起来,还有更多工作要做。 让我去更新我的公关。 我可能必须为webdriver-manager创建一个beta版本才能对此进行试验。
好的, https://github.com/angular/webdriver-manager/pull/372是我针对量角器5.4.2(带有测试!)的13的解决方法。
好吧,我现在很茫然。 今天突然之间,我不再收到昨天的错误,并且在chrome 74和chromedriver 2.46上的测试运行良好
因此,在73上运行测试之前,我故意将其更新为74,然后收到上述错误。 因此,我只是假设这是相关的,除非将chrome升级到74,否则任何人都不能再运行测试,除非他们在本地启动了一个硒网格中心/节点。
根据文档,Chromedriver 2.46不支持chrome 74,但是至少它允许我现在运行测试? 你知道还有什么可以改变的吗? 还是那个错误甚至相关?
铬74.0.3729.108
量角器5.4.2
webdriver-manager 12.1.2
chromedriver_2.46
没关系,我刚刚看到您的SO帖子,并且查看我们以前的构建日志,看起来好像正在下载webdriver:manager update
selenium-server-standalone-4.0.0-alpha-1.zip.jar
代替selenium-server-standalone-3.141.59.jar
所以现在这是一个实际的问题。 Chrome 74出现了,而Protractor 5.4.2使用webdriver-manager 12.xx只能下载2.xx chromedrivers。 这是一个问题,我们很快将对此进行热修复。
因此,这是适用于Protractor 5.4.2的webdriver-manager 12的修复程序: https :
因此,现在已通过[email protected]发行版解决了此问题
如何获得?
npm install
)npm install -f
有关StackOverflow帖子的更多信息,请访问: https ://stackoverflow.com/questions/55910242/when-using-protractor-5-4-2-webdriver-manager-downloads-2-46-which-is-not-compa/55911176
我遇到的问题是Protractor仍会安装驱动程序2.46,并且当我尝试自行安装webdriver-manager并将其添加到我的依赖项时,Protractor无法找到已安装的chromedriver
"C:\Program` Files\nodejs\node.exe" C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\bin\protractor "C:\Users\Kurt\WebStorm 2019.1.1\plugins\JavaScriptLanguage\helpers\protractor-intellij\lib\protractor-intellij-config.js" --intellijOriginalConfigFile=C:\Users\Kurt\WebstormProjects\hcp\e2e\protractor.conf.js --disableChecks --specs C:\Users\Kurt\WebstormProjects\hcp\e2e\src\settings\homepage.e2e-spec.ts "--grep=^core "
[02:18:10] I/launcher - Running 1 instances of WebDriver
[02:18:10] I/direct - Using ChromeDriver directly...
[02:18:10] E/direct - Error code: 135
[02:18:10] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[02:18:10] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
at Direct.getNewDriver (C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\built\driverProviders\direct.js:63:31)
at Runner.createBrowser (C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\built\runner.js:195:43)
at C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\built\runner.js:339:29
at _fulfilled (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:834:54)
at C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:863:30
at Promise.promise.promiseDispatch (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:796:13)
at C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:556:49
at runSingle (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:137:13)
at flush (C:\Users\Kurt\WebstormProjects\hcp\node_modules\q\q.js:125:13)
at processTicksAndRejections (internal/process/task_queues.js:81:9)
[02:18:10] E/launcher - Process exited with error code 135
Process finished with exit code 135
这是配置文件
const {SpecReporter} = require('jasmine-spec-reporter');
exports.config = {
SELENIUM_PROMISE_MANAGER: false,
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
random: true,
showColors: true,
defaultTimeoutInterval: 30000
},
random: false,
onPrepare: async () => {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.e2e.json')
});
jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
await browser.driver.manage().window().maximize();
}
};
当我运行webdriver-manager更新时
webdriver-manager: using local installed version 12.1.3
[02:33:40] I/update - chromedriver: file exists C:\Users\Kurt\WebstormProjects\hcp\node_modules\webdriver-manager\selenium\chromedriver_75.0.3770.8.zip
[02:33:40] I/update - chromedriver: unzipping chromedriver_75.0.3770.8.zip
[02:33:40] I/update - chromedriver: chromedriver_75.0.3770.8.exe up to date
[02:33:41] I/update - selenium standalone: file exists C:\Users\Kurt\WebstormProjects\hcp\node_modules\webdriver-manager\selenium\selenium-server-standalone-3.141.59.jar
[02:33:41] I/update - selenium standalone: selenium-server-standalone-3.141.59.jar up to date
[02:33:41] I/update - geckodriver: file exists C:\Users\Kurt\WebstormProjects\hcp\node_modules\webdriver-manager\selenium\geckodriver-v0.24.0.zip
[02:33:41] I/update - geckodriver: unzipping geckodriver-v0.24.0.zip
[02:33:41] I/update - geckodriver: geckodriver-v0.24.0.exe up to date
当我从package.json中删除webdriver-manager时,删除node_modules并运行npm i
, npm i-f
和webdriver-manager update
C:\Users\Kurt\WebstormProjects\hcp>webdriver-manager update
[02:38:17] I/file_manager - creating folder C:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium
[02:38:17] I/config_source - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium\standalone-response.xml https://selenium-release.storage.googleapis.com/
[02:38:17] I/config_source - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium\chrome-response.xml https://chromedriver.storage.googleapis.com/
[02:38:17] I/config_source - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium\gecko-response.json https://api.github.com/repos/mozilla/geckodriver/releases
[02:38:17] I/downloader - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium/chromedriver_2.46.zip https://chromedriver.storage.googleapis.com/2.46/chromedriver_win32.zip
[02:38:18] I/downloader - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium/selenium-server-standalone-3.141.59.jar https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
[02:38:18] I/update - chromedriver: unzipping chromedriver_2.46.zip
[02:38:19] I/downloader - curl -oC:\Users\Kurt\WebstormProjects\hcp\node_modules\protractor\node_modules\webdriver-manager\selenium/geckodriver-v0.24.0.zip https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-win64.zip
[02:38:20] I/update - geckodriver: unzipping geckodriver-v0.24.0.zip
C:\Users\Kurt\WebstormProjects\hcp>
@ Kurt29很奇怪,您可以使用node_modules / protractor / node_modules / webdriver-manager / package.json检查版本。 您是否正在使用全局安装?
建议的修复程序,用于下载特定版本,启动特定版本,状态以及阻止下载75。
我刚刚发布了带有修复的12.1.4: https : --versions.chrome 74.0.3729.6
。 这在12.1.3中已被打破。
@ luker2您想和我一起验证一下并尝试12.1.4吗?
@cnishina在我的
我使用--versions.chrome
标志指定了74和75,并下载了相应的驱动程序。 没有标志的情况下它下载了74.0.3729.6
谢谢!
这是与此相关的StackOverflow帖子: https :
我在本地node_modules中重新安装了量角器,但webdriver-manager版本保持不变:“ webdriver-manager”:“ ^ 12.0.6”。 还尝试将本地安装在新文件夹中,结果相同。 可能是npm问题...
注意,在webdriver-manager package.json中,webdriver-manager是正确的“版本”:“ 12.1.4”,但在量角器package.json依赖项中,webdriver-manager版本是“ webdriver-manager”:“ ^ 12.0.6”。 这让我感到困惑。 但是一切都很好。
是的,^ 12.0.6意味着获取最新的次要版本。 因此,在这种情况下,它将下载12.1.4。
即使看起来安装成功,但是我所有的量角器测试用例都失败了。 它在星期五(3天前)有效,但现在又失败了。
当google-chrome-stable升级到74.0.3729.131-1时,故障开始。 最初,我可以通过安装以前的google-chrome-stable版本来进行测试。 Friday与Protractor 5-4-2和Chrome 74一起使用。但是现在它不再起作用了,并且找不到任何解决方法。 请指教。
我在Ubuntu 16.04码头上。
@cnishina确保我完全忘记了“ ^” npm版本,谢谢您的解释和修复
由于#5230已关闭,因此我将注释移至此处:
因为新版本的[email protected]不起作用(仅在5月3日,星期五才起作用),所以我不得不尝试使用旧版本,但它也不起作用。
Chrome 73在5月3日(星期五)之前可以使用,但此后不再可用。 我们现在无法运行测试。 我们需要一个解决方案。 请指教。 提前致谢。
澄清:我之前安装的旧版本工作正常。 但是当我创建docker now时,使用当前版本或旧版本都不起作用。 因此,某些新版本中的内容似乎已损坏。
我已经解决了这个问题。 当Angular代码将按钮定义为以下情况时,会遇到失败:
<button type="submit" class="btn btn-info pull-right" ui-sref="xxx.xxx.xxx">Create New Element</button>
量角器测试脚本为:
browser.driver.findElements(by.xpath('//*[contains(text(), "' + arguments[0] + '")]'));
其中arguments [0] =“创建新元素”
目前,我有WebDriver Manager版本12.1.4和chromedriver 74.0.3729.6,因此一切正常,但是在chrome浏览器74.0.3729.131上运行时,我的测试失败了; 但是,如果我在以前的73版本上运行它,则可以正常工作。 有什么建议吗?
谢谢
它似乎与应用程序Web UI代码和测试脚本无关,并且我的解决方法再次失败。 看起来新版本无法处理良性异常或非阻塞错误返回。 因此,除非完全更改应用程序代码以使它不返回错误或引发异常,否则我真的无法解决。
仅当73发行时安装的系统有效。 但是,如果您将73安装到新服务器上,则也不起作用。
有什么方法可以使我使用任何版本(新安装)的产品吗?
星期五发生了什么事,星期五正在工作。
嗨@cnishina ,
我们有与@shihuawang和@raymonsaadalla类似的问题。 我们公司拥有在Protractor上运行的整个自动化脚本代码库,现在Chrome自动更新到了74版,因此测试用例无法执行。
我们有以下版本的应用程序:
我们还重新安装了webdriver-manager和Protractor(与上述版本相同)。
运行量角器脚本获得相同的结果,Chrome浏览器出现,但随后永久挂起。
不幸的是,将Chrome降级至版本73并非我们的选择。 有解决此问题的解决方法吗?
我和@Priyankajoshipj在同一家公司。 (我所有的应用程序都与上面列出的版本相同。)当我们尝试运行Protractor脚本时,会发生附件的Google Chrome浏览器图像。 浏览器出现,然后永久挂起。 测试超时,浏览器仍然保持这种状态,直到我们手动将其关闭。
@Niyarlatotep我注意到与节点版本10.9.0关联的npm下载了webdriver-manager版本12.0.6。 当我尝试节点版本10.15.3时,量角器5.4.2包括webdriver-manager 12.1.4。 如果您仍然遇到此问题,我将调查npm的所有已知问题。
@shihuawang我做了一个示例测试。 我们有非常相似的chrome + chromedriver版本。 https://github.com/cnishina/protractor542-chrome74在此示例中,我包括了已下载的Chrome版本和ChromeDriver版本。 至少对于一个简单的例子,这对我有用。 再次面对上述问题,我将再次检查节点,npm和webdriver-manager版本。 如果您仍在使用Chrome 73,请参考版本73.0.3683.68。 这可以通过webdriver-manager update --versions.chrome 73.0.3683.68
来完成。 如果您仍在使用webdriver-manager 12.0.x,它将下载chromedriver 2.46( webdriver-manager update --versions.chrome 2.46
),该版本应适用于版本73。
@raymonsaadalla请参见上面有关版本73的注释。您可以使用Chromedriver 73.0.3683.68或2.46。
@ XL175816和@Priyankajoshipj我可以通过一个简单的示例使用它: https :
请检查是否在全球范围内安装了量角器。 尝试删除node_modules文件夹,然后重试。 我使用async / await进行了测试,并且没有在webdriver-manager 12.1.4中遇到这些问题。 我的节点版本是10.15.3
您也可以尝试删除package.lock.json并重新安装npn
也尝试npm dedupe
命令。 如果手动安装,它将使用webdriver-manager版本修复该错误。
我们尝试了几次@vsravuri的建议,以删除node_modules文件夹并重新安装Protractor和webdriver-manager。 我们还尝试删除package.lock.json并再次执行“ npm install”。
@cnishina我们的测试一直持续到星期一(5/6)下午。 他们整天工作,直到Google Chrome浏览器自动更新到版本74; 然后它们都失败了,包括我们几分钟前才成功运行的那些。 我们的脚本都没有async / await。 实际上,我们定向到的第一个网站是Angular页面。
您是否正在使用Node 10.15.3? 运行测试时会看到什么错误? webdriver-manager更新的输出是什么?
嗨,西尼西娜,
版本74 + webdriver-manager 12.1.4 + ChromeDriver 74 + nodejs 6.x + Protractor 5.4.2对我们不起作用。
chrome稳定版升级后,这种情况发生了几次,以后每次都修复。 但是这次还没有解决。 我之前说过一次修复,这是我的误解。 所以它永远不会固定74。
一次,我可以通过安装73使其工作,但现在不起作用。
我先前安装的73可以正常工作,但不适用于新安装。
失败的原因也不例外。 这可能与进程的超时有关,可能还有其他原因。
您好vsravuri,Protractor已在全球范围内安装,并且其他大多数情况也可行。 在升级到74之前,它仍然有效。 我以前安装的73仍然可以正常工作,但是我们需要在新的docker上安装才能进行正式的夜间测试。 由于这个问题,我们的项目都被延迟了。
嗨vsravuri,您好,我的错误无法创建一条新记录,该记录经历了一步的超时,但是仍然应该创建它。 直到74铬之前,它一直有效。一次,73铬不起作用,但后来修复了。 您能以同样的方式修复74吗?
在74之前,我们总是可以退回到较旧的版本以使其正常工作。 但是这次没有运气。
我发现清除浏览器缓存(手动)可以解决应用程序的超时问题,但是当我将其添加到量角器时,似乎无法清除缓存。 您能建议我如何清除量角器中的缓存。 我在网上找到的那个不适用于我。
您需要检查ChromeDriver 74和自动化脚本是否存在任何问题。 要清除浏览器缓存,您需要选择是否要删除Cookie,本地存储或会话存储。
尝试这个
browser.executeScript('window.sessionStorage.clear();');
browser.executeScript('window.localStorage.clear();');
browser.manage()。deleteCookie(“ test_cookie”);
嗨vsravuri,
后来我得到了明确的缓存工作,如下面的链接所建议的那样,它必须在函数中起作用:
https://stackoverflow.com/questions/45218022/how-to-clear-a-browser-cache-in-protractor?rq=1
因此,这是解决我的特定问题的方法。 但我确实希望有人能够像chrome浏览器一样修复它来处理这种情况,其行为与手动测试相同。 在最近的几个chrome版本中,这一直是一个问题,除了74之外,所有这些最终都得到了解决。
@Priyankajoshipj和我有以下版本的应用程序:
运行我们的脚本仍然会产生与以前相同的错误,Chrome为空白。 (从上面重申一下自己,浏览器出现了,但还是空白,甚至无法访问我们应用程序所在的https:// localhost,并且永远都这样挂起。测试超时,浏览器仍然保持这种状态,直到我们因为它挂起了,所以cmd什么也没说(只是闪烁的光标),所以我们什至不知道错误是什么。
在运行脚本之前清除Chrome缓存对我们不起作用。 结果相同。 而且我们的测试无论如何都不应清除缓存。
我们确实找到了可以带头的东西。 我们能够运行上面提到的@cnishina的简单测试,并且经过生效的方法。 它需要使用async / await; 我们必须在每行前面添加“ await”…如果没有async / await,Chrome有时会到达https:// localhost,然后立即关闭并说“在等待量角器与页面同步时出错”,或者有时没有根本不会进入本地主机(我上面连接的永久悬挂的空白浏览器)。
但是,更改脚本中的所有代码将是一项非常艰巨的工作。 而且如前所述,不幸的是,将Chrome降级至73版不是我们的选择。 希望可以修复Chrome版本74。
@ XL175816今后,由于控制流弃用,我们需要使所有内容异步/等待。 如果异步/等待正在工作,那么最好立即开始进行工程设计以升级您的测试。
@shihuawang请打开一个新的错误并添加更多信息。 它怎么会失败? 你在做什么? 错误消息是什么? 您是否有示例代码集? 您在什么环境上运行测试? 从上面阅读这些消息,我不确定从哪里开始或如何获得帮助。
由于此问题已解决,因此我也将锁定此对话。 我将其保持打开状态,以防万一有人仍然遇到此问题。 如果您遇到了与Protractor有关的问题,而您认为是框架的问题,请随时提出新的问题。 如果您在寻求支持帮助,请在此处询问: https :
最有用的评论
嗨@cnishina ,
我们有与@shihuawang和@raymonsaadalla类似的问题。 我们公司拥有在Protractor上运行的整个自动化脚本代码库,现在Chrome自动更新到了74版,因此测试用例无法执行。
我们有以下版本的应用程序:
我们还重新安装了webdriver-manager和Protractor(与上述版本相同)。
运行量角器脚本获得相同的结果,Chrome浏览器出现,但随后永久挂起。
不幸的是,将Chrome降级至版本73并非我们的选择。 有解决此问题的解决方法吗?