公开项目会议 - 2021 年 2 月 25 日

继续每两周一次的公开项目会议系列...

继续每两周一次的公开项目会议系列,以下是 2021 年 2 月 25 日欧洲中部时间下午 5:30 举行的会议的时间线。(以下时间为 IST 时间)

会议在 Selenium Slack 上的 #selenium-tlc 频道举行。


Diego Molina 晚上 9:54

@titusfortner @barancev @harsha509 @luke @jimevans @simonstewart

Luke Hill 晚上 9:54

是的。如果需要,我在这里。

Diego Molina 晚上 9:55

我今天唯一的主题,为了让会议简短,是:“beta 2 需要什么” 欢迎添加/提出任何其他主题

Luke Hill 晚上 9:59

除此之外,我们是否对启用我们发布 4.0.0 正式版有一个粗略的想法(即我们需要达到哪些里程碑)

Diego Molina 晚上 10:01

让我们稍等几分钟,看看是否有足够的人开始会议

Titus Fortner 晚上 10:04

在 beta2 之前,我有一些小事要做,但对我来说越快越好 :)

Simon Stewart 晚上 10:04

我在一个计划会议中,但我会慢慢关注

Titus Fortner 晚上 10:05

(Element#dom_attribute 是我想要完成的主要一个)。我认为 Java 和 C# 都已经有了这个

Diego Molina 晚上 10:05

好的,那么让我们从在场的人开始。到目前为止只有一个主题:“beta 2 需要什么”

我想到的是:修复泄漏 :slightly_smiling_face

Simon Stewart 晚上 10:05

消除泄漏。确保 Grid 上 Docker 实例的 CDP 工作

Diego Molina 晚上 10:06

关于泄漏,在阅读更多关于 AsyncHttpClient 问题及其谷歌群组之后...

10:07

他们提到每个 AsyncHttpClient 实例都有自己的池

Diego Molina 晚上 10:07

这就是为什么他们建议只使用一个实例的原因

Puja Jagani

在你指出潜在问题区域后,我尝试使用 AsyncHttpClient 的单个实例,但仍然看到泄漏 :confused: 明天会尝试深入挖掘。如果您想让我尝试一些特定的东西,请告诉我。

Diego Molina

整个分发器使用一个实例?

Puja Jagani

像我们之前那样使用单个实例,类似于https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-alpha-7/java/client/src/org/openqa/selenium/remote/http/netty/NettyClient.java#L41 java/client/src/org/openqa/selenium/remote/http/netty/NettyClient.java:41 private static final AsyncHttpClient httpClient = https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | GitHub 添加

Puja Jagani

这只是为了缩小问题区域。我试图排除创建一个新实例是问题还是我们处理响应的方式(你之前提到的阻塞位)

Puja Jagani

具有单个实例的分发器堆 :see_no_evil

Diego Molina 晚上 10:08

此外,您可以限制池的大小

所以我计划调整客户端配置,看看是否有帮助

10:09

可悲的是,AsyncHttpClient 的文档不存在,但它似乎是一个健壮的实现,用于 Gatling

10:09

(一个负载测试工具)

10:10

负载*

David Burns 晚上 10:12

@simonstewart 如果假设一切都包含在内,“确保 Grid 上 Docker 实例的 CDP 工作”还剩下什么

Simon Stewart 晚上 10:12

(在会议中)

Titus Fortner 晚上 10:13

每个绑定都需要能够实现该部分(从 caps 获取调试器地址等)

David Burns 晚上 10:13

@titusfortner 完成了吗?

10:14

它从 se:options 中获取

Titus Fortner 晚上 10:14

我认为他还没有完成第一部分

他正在改变

Simon Stewart 晚上 10:14

se:cdp 现在我更新了使用它的绑定

David Burns 晚上 10:14

@simonstewart 触碰了我的代码... 我 Python 代码中的肮脏的 Java 人

Simon Stewart 晚上 10:14

“Grid 中的 CDP” stuff 会添加 se:cdpVersion

Luke Hill 晚上 10:14

我在 Ruby 中注意到的一件新事情(不确定是否在所有地方都相关)。是新的 chrome cdp stuff 需要能够在本地/远程实例中工作。

Simon Stewart 晚上 10:14

“我的宝贝……”

David Burns 晚上 10:14

:stuck_out_tongue

Simon Stewart 晚上 10:15

@luke 这就是 se:cdp 功能允许的

Luke Hill 晚上 10:15

比我领先一步 :smile

Simon Stewart 晚上 10:15

Selenium 服务器知道如何转发 CDP 流量

Titus Fortner 晚上 10:15

是的,由于子类化的原因,Ruby 代码实际上从未允许用户从 Remote WebDriver 中受益于特定于浏览器的功能

Luke Hill 晚上 10:15

所以基本上 beta2 中再回来看看。

Titus Fortner 晚上 10:15

我有一个 PR 来解决它

Simon Stewart 晚上 10:15

我将使本地驱动程序也设置 se:cdp

Titus Fortner 晚上 10:16

使用该 PR,Ruby CDP 代码仅在 localhost 上与服务器一起工作,因此我们还需要更新 Simon 所做的

Luke Hill 晚上 10:16

我们“知道”我们需要做什么。这成功了一半。

Titus Fortner 晚上 10:17

由于 @p0deje 已经离开一段时间,而 @twalpole 非常忙,这只是带宽问题。 :)

好吧,部分是,我只知道“ish”

Diego Molina 晚上 10:17

这是 @luke 提交代码的好机会 :slightly_smiling_face

Luke Hill 晚上10:18

我可以尽力提供帮助。但我还没达到他们的标准。

Titus Fortner 晚上10:18

我还想弄清楚如何为 CDP 版本进行不同的 gem 发布

10:19

更重要的是,我们能够更新 CDP 版本以匹配浏览器版本,而不是将 Selenium 方法匹配到 CDP 方法,所以我希望能够独立发布这些工件,并让用户以某种方式切换它。

Luke Hill 晚上10:19

到复活节的时候,我希望能够再次找到更稳定的住所,无论是租还是买我的第一套房子。所以,是的,晚上应该可以做更多的事情。这将是我两年多以来第五次搬家了

Titus Fortner 晚上10:22

泄漏调查还有多少工作要做?(我问是因为我真的不知道都涉及哪些内容)

Diego Molina 晚上10:23

不确定,我这周投入了精力,至少我把它定位到了 Distributor

10:24

当执行新的测试时,它会随着时间的推移消耗内存,并且永远不会释放它

我现在正在检查问题是否真的与 AsyncHttpClient 有关

10:25

嗯,更确切地说,与我们使用它的方式有关

David Burns 晚上10:25

@diemol @Puja Jagani 知道这是一个优先事项,所以请随时拉她进来 :slightly_smiling_face

Diego Molina 晚上10:26

他们建议使用单个实例,而在 Distributor 中,我们每个注册的节点都有一个实例,一个实例用于健康检查,还有一个我还没搞清楚是什么的实例

Simon Stewart 晚上10:30

因为每个实例都需要自己的配置

10:31

如果我们可以在每个请求中更改配置,我们就没问题了

Diego Molina 晚上10:31

他们有不同的基本 URL,对吧?

Simon Stewart 晚上10:31

10:32

并且可能还有超时时间

配置对象上的任何内容

Diego Molina 晚上10:33

我没有看到不同的超时时间,但是当我们允许用户在 Grid 中配置超时时间时,我们将需要它们

Puja Jagani

我认为 RequestBuilder 允许为每个请求设置超时时间。

Diego Molina 晚上10:34

所以,嗯,有意思……现在不知道该怎么办了 :slightly_smiling_face

Simon Stewart 晚上10:35

我再次要喃喃自语,基于 Netty 编写我们自己的 HTTP 客户端,从我们用于域套接字的客户端开始