我一直在针对Chrome运行量角器测试,最近遇到了针对IE进行测试的需求。我按照标准步骤设置硒服务器(webdriver-manager update => webdriver-manager start),然后使用量角器conf.js运行测试。使用{“ browserName”:“互联网浏览器”,“ version”:“ 11”},我的能力很简单。
我在看似随机的测试运行中遇到以下错误。我正在使用IEDriverServerv3.14.0。
{ WebDriverError: Unable to determine type from: E. Last 1 characters read: E
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08- 02T20:13:22.693Z'
System info: host: '******', ip: '******', os.name: 'Windows
Server 2016', os.arch: 'amd64', os.version: '10.0', java.version: '10.0.2'
Driver info: driver.version: unknown
at Object.checkLegacyResponse (C:\Users\admin-jdwyer2\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:546:15)
at parseHttpResponse (C:\Users\admin-jdwyer2\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:509:13)
at doSend.then.response (C:\Users\admin-jdwyer2\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:441:30)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7) name: 'WebDriverError', remoteStacktrace: '' }
我一直在寻找解决方案,但我唯一能找到的关于此错误的信息是here。任何帮助将不胜感激!
答案 0 :(得分:0)
事实证明,这是我的代码存在同步问题,因为我正在使用async/await
与Protractor进行测试。在我的conf.js
文件中,我使用onPrepare()
函数在测试开始之前设置变量/设置。在onPrepare()
内部,我使用browser.driver.manage().window().maximize();
将窗口最大化。当我不使用await
将browser.driver.manage().window().maximize();
调用与其余测试进行同步时,就会发生麻烦,这样它将在测试开始附近随机最大化窗口并引发错误。
我通过使onPrepare()
使用async
(例如,将onPrepare()
更改为async onPrepare()
并将browser.driver.manage().window().maximize();
更改为await browser.driver.manage().window().maximize();
来解决了此问题