Chrome93最近发布。大约在这个时候(8月31日下午4点),我们的端到端测试开始失败。这些测试利用量角器,通过TeamCity在安装了Chrome93的Windows构建代理上运行。
我们试图强制一个93. x和一个92. x版本的chrome驱动程序。两者都会在下面产生这个超时。我们可以在本地运行这些e2e测试,没有问题。有什么建议吗?
[10:23:38] I/launcher - Running 1 instances of WebDriver
10:23:38 [10:23:38] I/direct - Using ChromeDriver directly...
10:33:40 [10:33:40] E/launcher - session not created
10:33:40 from timeout: Timed out receiving message from renderer: 600.000
10:33:40 (Session info: chrome=93.0.4577.63)
10:33:40 (Driver info: chromedriver=93.0.4577.15 (660fc11082ba57405eca2e8c49c3e1af756fbfae-refs/branch-heads/4577@{#203}),platform=Windows NT 10.0.14393 x86_64)
10:33:40 [10:33:40] E/launcher - SessionNotCreatedError: session not created
10:33:40 from timeout: Timed out receiving message from renderer: 600.000
10:33:40 (Session info: chrome=93.0.4577.63)
10:33:40 (Driver info: chromedriver=93.0.4577.15 (660fc11082ba57405eca2e8c49c3e1af756fbfae-refs/branch-heads/4577@{#203}),platform=Windows NT 10.0.14393 x86_64)
10:33:40 at Object.checkLegacyResponse (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\selenium-webdriver\lib\error.js:546:15)
10:33:40 at parseHttpResponse (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\selenium-webdriver\lib\http.js:509:13)
10:33:40 at C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\selenium-webdriver\lib\http.js:441:30
10:33:40 at processTicksAndRejections (internal/process/task_queues.js:93:5)
10:33:40 From: Task: WebDriver.createSession()
10:33:40 at Function.createSession (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\selenium-webdriver\lib\webdriver.js:769:24)
10:33:40 at Function.createSession (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\selenium-webdriver\chrome.js:761:15)
10:33:40 at Direct.getNewDriver (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\built\driverProviders\direct.js:77:33)
10:33:40 at Runner.createBrowser (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\built\runner.js:195:43)
10:33:40 at C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\built\runner.js:339:29
10:33:40 at _fulfilled (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\node_modules\q\q.js:834:54)
10:33:40 at C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\node_modules\q\q.js:863:30
10:33:40 at Promise.promise.promiseDispatch (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\node_modules\q\q.js:796:13)
10:33:40 at C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\node_modules\q\q.js:556:49
10:33:40 at runSingle (C:\BuildAgent\work\f3ee5d88fcfb5472\node_modules\protractor\node_modules\q\q.js:137:13)
10:33:40 [10:33:40] E/launcher - Process exited with error code 199
我能够解决问题尝试使用以下选项(不太好,但它的工作...):
chromeOptions.addArguments("no-sandbox");
chromeOptions.addArguments("disable-infobars");
chromeOptions.addArguments("disable-dev-shm-usage");
chromeOptions.addArguments("disable-browser-side-navigation");
chromeOptions.addArguments("disable-gpu");
chromeOptions.addArguments("--dns-prefetch-disable");
chromeOptions.addArguments("disable-extensions");
chromeOptions.addArguments("force-device-scale-factor=1");
chromeOptions.setPageLoadStrategy(PageLoadStrategy.NORMAL);
chromeOptions.addArguments("enable-features=NetworkServiceInProcess");
chromeOptions.addArguments("--aggressive-cache-discard");
chromeOptions.addArguments("--disable-cache");
chromeOptions.addArguments("--disable-application-cache");
chromeOptions.addArguments("--disable-offline-load-stale-cache");
chromeOptions.addArguments("start-maximized");
chromeOptions.addArguments("lang=de");
chromeOptions.addArguments("allow-running-insecure-content");
chromeOptions.addArguments("inprivate");
这不是一个完全相同的问题/情况,但是在这篇SO帖子中有很多有用的见解。
我们使用的是量角器,所以对于我们来说,修复程序在下面添加了--disable gpu
参数,这在上面的文章中也暗示了一些。
chromeOptions: {
args: [
'--disable-gpu'
]
}
不知道为什么我们在93Chrome需要它,但它也列在量角器浏览器设置中(声称在58Chrome需要它)。
从Chrome58开始,您还需要设置-禁用gpu,尽管这在未来的版本中可能会改变。
在 HTTP 协议中,当客户端不再处于活动状态时没有显示的终止信号。这意味着当客户端不再处于活跃状态时可以使用的唯一机制是超时时间。 Servlet 容器定义了默认的会话超时时间,且可以通过 HttpSession 接口的 getMaxInactiveInterval 方法获取。开发人员可以使用HttpSession 接口的 setMaxInactiveInterval 方法改变超时时间。这些方法
问题内容: 我在用户登录时创建会话,如下所示: 如何在X分钟的会话上指定超时,然后在达到X分钟后让它执行功能或页面重定向? 编辑:我忘了提及由于不活动,我需要会话超时。 问题答案: 首先,存储用户最后一次发出请求的时间 在后续请求中,检查他们多久之前提出了请求(在此示例中为10分钟)
我试图使用rsDriver函数运行RSelenium,但当我运行时,我得到一条消息,告诉我需要一个较新版本的Chrome:
我现在是robot Framework的新手。我现在使用的是chrome和chromedriver的最新Windows版本,它是80,但是当我尝试运行测试时,它给出的消息是“SessionNotCreatedException:message:session not Created:This version of chromedriver only supports chrome version
我有一个问题发生在我坐在空闲的时候,没有接触网络浏览器,vaadin在点击vaadin应用程序中的任何内容之后,就会抛出红色的通信问题错误消息。 我已经通过30分钟不接触浏览器进行了测试。之后,当我单击vaadin应用程序中的一个按钮时,它会抛出通信错误消息。 我有两个应用服务器,它们位于Rackspace的负载均衡器后面。我还启用了“粘性会话”... vaadin可能有自己的超时吗?
问题内容: 和之间的实际区别是什么? 假设我希望用户会话在闲置15分钟后无效(而不是在第一次打开后15分钟内无效)。其中哪一项对我有帮助? 我也知道我可以这样做,可以将用户的Cookie设置为在一定时间内过期。但是,cookie过期与服务器端的实际会话过期是不相同的。Cookie过期后,这还会删除会话吗? 我的另一个解决方案是 对每个请求都很简单 ,然后将会话与当前时间进行比较,然后基于该时间删除