公开项目会议 - 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 问题及其 Google 群组之后...

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

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

David Burns 晚上 10:13

@titusfortner 它完成了吗?

10:14

它从 se:options 获取

Titus Fortner 晚上 10:14

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

他正在更改它

Simon Stewart 晚上 10:14

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

David Burns 晚上 10:14

@simonstewart 碰了我的代码…… 肮脏的 java 人在我的 python 代码中

Simon Stewart 晚上 10:14

“Grid 中的 CDP” 部分将添加 se:cdpVersion

Luke Hill 晚上 10:14

我在 ruby 中注意到的新事物之一(不确定是否与全局相关)。新的 chrome cdp 需要能够在本地/远程实例中工作。

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 Server 知道如何转发 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 非常忙,这只是带宽问题。 :)

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

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

不确定,我本周投入了时间,至少我已经把它锁定在分发器上

10:24

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

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

10:25

嗯,更与我们使用它的方式有关

David Burns 晚上 10:25

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

Diego Molina 晚上 10:26

他们建议使用单个实例,而在分发器中,我们每个注册节点都有一个实例,还有一个实例用于执行健康检查,还有另一个实例我还没有确定它是什么

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 客户端了,从我们为域套接字编写的那个开始。