公開專案會議 - 2021 年 5 月 20 日

Continuing the series of bi-weekly public project meetings…

Continuing the series of bi-weekly public project meetings, here is the timeline of the meeting held on May 20, 2021,5:30 PM CET. (Below times are on IST)

Meetings are held on the #selenium-tlc channel on Selenium Slack.


Simon Stewart 9:00 PM

@AutomatedTester, @p0deje @titusfortner, @harsha509 @Puja Jagani @barancev @jimevans @Todd Tarsi and anyone else who’s interested, come on down!

9:00 PM

Any agenda items?

Diego Molina 9:00 PM

I can paste the ongoing agenda and leave you to it :slightly_smiling_face

Simon Stewart 9:00 PM

Yes please!

Diego Molina 9:01 PM

Pending work for the 4th Beta?

  • Server - Grid
  • Pipe VNC connectors through the WebSocket plumbing for live video
  • Unify new Session Queue
  • Stress test the new Grid on AWS or similar with >50 simultaneous tests
  • Check that the Redis/JDBC backed services actually function
  • Distributor follows spec when allocating new sessions
  • More than 1 IE session per Node? https://github.com/SeleniumHQ/selenium/issues/9388

Language bindings

  • “se:cdpVersion” is missing in C# and JS
  • Can all bindings do CDP over Grid?
  • What are the features present in Selenium 4?
  • Do all bindings implement them?
  • Selenium IDE
  • Who knows what the release process is?
  • What is needed?
  • Who can help reviewing pull requests?

9388 Grid 4 doesn’t allow more than 1 session for Internet Explorer

:boom: Regression Report

We used Selenium Grid 2 and 3 to run multiple IE sessions in parallel without issues for many years. But now Selenium 4 restrict the number of IE sessions to only 1 without any way to override the restriction.

Last working Selenium version

Worked up to version: 3.141.59

Stopped working in version: 4.0.0-alpha

To Reproduce

  1. Start the hub using java -jar selenium-server-4.0.0-beta-3.jar hub
  2. Start the IE node using java -Dwebdriver.ie.driver=IEDriverServer-3.150.1.exe -jar selenium-server-4.0.0-beta-3.jar node –max-sessions 7 –override-max-sessions true Expected behavior A grid node that allows up to 7 tests that use IE to run in parallel. Environment OS: Windows
    Browser: IE
    Bro… Show more Labels C-grid https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | Apr 17th | Added by GitHub

Simon Stewart 9:01 PM

Thank you!

9:01 PM

I’ll add: What do we want in RC1?

9:01 PM

Anyone want to add anything else?

Diego Molina 9:02 PM

Also

General project statistics

  • Previous meeting: 157 open issues, 25 open pull requests Currently: 161 open issues, 25 open pull requests

9:02 PM

(so, I cannot run the meeting, but I am around :slightly_smiling_face:)

Simon Stewart 9:02 PM

It’s much appreciated. Thank you, @diemol

9:03 PM

I’m guessing silence means that there’s nothing else to add?

In that case: Pending work for beta 4

Simon Stewart 9:04 PM

I saw that @Puja Jagani has got tracing working again, which I’d love to see in b4.

Puja Jagani

Will be landed tomorrow!

Simon Stewart

Woohoo!

Simon Stewart

Thank you :slightly_smiling_face

Simon Stewart 9:04 PM

And @diemol posted a video of the Grid scaling up to 50 clients

9:04 PM

I’ve done some perf work to get better utilisation

9:05 PM

And we’ve unified the session queue too

9:05 PM

That is, I think Grid is good to go for b4 once the tracing work is landed

9:05 PM

Anyone (@harsha509 @AutomatedTester) know about se:cdpVersion in the JS bindings?

David Burns 9:07 PM

I’ve not done it

Simon Stewart 9:07 PM

(I see that @harsha509 is typing….)

Sri Harsha 9:07 PM

cdp version check is not implememted on js.

Simon Stewart 9:07 PM

OK. Do we need it for beta 4, or should we punt it to rc1?

David Burns 9:08 PM

We can punt it

Simon Stewart 9:08 PM

Great. Let’s punt it to rc 1

David Burns 9:08 PM

No one has noticed how it works and no bug reports so…

Simon Stewart 9:08 PM

What about CDP over the Grid?

If you’re using se:cdp for the websocket endpoint, it’ll work

9:09 PM

(@titusfortner and @p0deje I’m curious about the ruby bindings and CDP-over-Grid too)

David Burns 9:09 PM

That is there already

Titus Fortner 9:11 PM

yeah, for Remote, Ruby gets the version from se:cdpVersion

9:12 PM

We run the tests for both local and via the Grid, and everything is passing

Simon Stewart 9:12 PM

Do the Ruby bindings use se:cdpVersion too?

I guess you lean into the typing less than Java and .Net, so maybe it doesn’t matter so much

Titus Fortner 9:13 PM

https://github.com/SeleniumHQ/selenium/blob/411b883645023d1e1a629a3197d3552253b93f2f/rb/lib/selenium/webdriver/remote/driver.rb#L54 driver.rb

capabilities[‘se:cdpVersion’].split(’.’).first

https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | Added by GitHub

Simon Stewart 9:13 PM

Perfect :slightly_smiling_face

9:14 PM

waits for @titusfortner to type

Titus Fortner 9:14 PM

no need, I’m not saying anything useful

9:14 PM

but Ruby & devtools things I think we’re good

Simon Stewart 9:15 PM

Great. Moving on, then!

9:15 PM

I get the feeling that if anyone had the time and energy, @jimevans would appreciate a hand with the .Net bindings

9:16 PM

I know that last status meeting, he mentioned that there were some features he wanted in there before beta4

David Burns 9:17 PM

@Puja Jagani has done some .Net stuff. If Jim tells us what needs doing we can help

Simon Stewart 9:18 PM

I think it’s probably CDP-over-Grid, and maybe the CDP version stuff

9:18 PM

But, obviously, @jimevans knows waaaay more than I do about that

David Burns 9:18 PM

I need to do the multiple options handling to capabilities work in the python code

9:19 PM

If I had deprecated some of the code in 3.14 it would be Waaaaaaay easier

Simon Stewart 9:20 PM

We can have a discussion about what you’re thinking of breaking later

9:20 PM

It may just be that we do the simple thing, though

As far as I’m concerned, then, the thing we’re waiting for is @jimevans to give us the green light for the .Net stuff being ready for beta4

Titus Fortner 9:21 PM

I did just notice that Ruby hasn’t implemented Full Page screenshot support for Firefox, yet; I’ll get that added today.

And on that vein, I need to create some examples of browser specific features being used with Remote drivers in each language, because I know not everything is working in every binding, yet

Simon Stewart 9:21 PM

What do other people think?

David Burns 9:21 PM

Nothing will break promise

Simon Stewart 9:21 PM

@titusfortner I think we can set “feature parity between bindings” as an rc1 goal

Titus Fortner 9:21 PM

yup, makes sense

9:22 PM

I"ll get the Firefox screenshot thing in before beta4

Simon Stewart 9:22 PM

As long as the broad features are there in beta4 (notably, the CDP-related infrastructure, if not the nicer APIs built on top)

Titus Fortner 9:22 PM

Very excited about how close we are :slightly_smiling_face

Simon Stewart 9:22 PM

Which neatly brings us on to What do we want in RC1?

Titus Fortner 9:23 PM

ensure feature parity :slightly_smiling_face

Simon Stewart 9:23 PM

  • Feature parity between languages
  • Updated CDP versions for current browsers
  • More Grid stress testing

Titus Fortner 9:23 PM

or at least document it

Simon Stewart 9:23 PM

Documentation :slightly_smiling_face

Titus Fortner 9:23 PM

while we’re here, the JUnit 5 dev doesn’t have any ideas for how to fix the issue

Comment on #2273 Parallelism value ignored for the fixed strategy

I’m all ears if anyone has a proposal how to resolve this. The only thing I’ve come up with would be to wrap the execution of each test in another, non-ForkJoinPool thread but that would double the number of required threads and have performance implications. https://github.com/junit-team/junit5|junit-team/junit5junit-team/junit5 | May 13th | Added by GitHub

9:24 PM

it’s definitely a JUnit thing, but it’s going to affect our users :disappointed: :disappointed

Simon Stewart 9:24 PM

Why they don’t just maintain an AtomicInteger of the number of running threads is beyond me

Titus Fortner 9:25 PM

Can you suggest that?

9:25 PM

I am so far out of my depth with threading that I will get in the way more than help

Simon Stewart 9:25 PM

We can get this sorted :slightly_smiling_face

Titus Fortner 9:26 PM

:thumbsup

Simon Stewart 9:26 PM

Does anyone have anything else that they want to see in rc1?

9:26 PM

Or, to rephrase, if we ship rc1 and nothing major blows up, what would stop us making the release after that 4.0?

9:28 PM

(I’m going to take silence here to mean that everyone is really busy right now)

Titus Fortner 9:29 PM

Your list looks good to me…

Simon Stewart 9:30 PM

OK.

9:31 PM

So, let’s move on to Selenium IDE

I think that there’s a small core of us who could release the IDE

9:32 PM

But @corevo and DaveH would know the process best

9:33 PM

To recap

  • Selenium IDE
  • Who knows what the release process is?
  • What is needed?
  • Who can help reviewing pull requests?

Todd Tarsi 9:33 PM

@simonstewart - I would love to help in any capacity that I can, including reviewing PRs.

Simon Stewart 9:34 PM

That’s great news :slightly_smiling_face

9:34 PM

Thank you

9:34 PM

Again, it feels like we’re not going to make much progress today on this.

Titus Fortner 9:35 PM PM

I think we need to hear back from former owners to make progress on it

Simon Stewart 9:35 PM

Can I suggest that we set up a call or email chain with @corevo, DaveH, @harsha509 and whoever else is interested to move that forwards?

Titus Fortner 9:35 PM

can we reach out to them not-on-slack since they don’t seem to be paying attention here?

yes, that :slightly_smiling_face

Simon Stewart 9:35 PM

nods

@harsha509, would you be okay arranging that?

If we can get you email addresses….

Sri Harsha 9:36 PM

I can take inputs from @corevo on how to release and document it.

9:37 PM

Sure @simonstewart

Simon Stewart 9:37 PM

Brilliant. Thank you. I’ll be happy to help move things along if I can

Sri Harsha 9:37 PM

:bow

Simon Stewart 9:37 PM

@Todd Tarsi I bet it’d be interesting to hear how the electron work was going

Todd Tarsi 9:38 PM

@simonstewart - It will be better with a PR as a point of discussion, so I’ll put one out later tonight.

Simon Stewart 9:38 PM

Oh yeah. Definitely a PR discussion :slightly_smiling_face

9:39 PM

Alright then, folks. I think we’ve romped through the agenda.

9:39 PM

Is there anything else people would like to talk about?

Titus Fortner 9:39 PM

What is the current status of BiDi?

Luis Correia 9:40 PM

Documentation :slightly_smiling_face

Titus Fortner 9:40 PM

I think we closed the issue that was listing what we were going to implement, presumably because we’ve implemented the things we deemed essential

Simon Stewart 9:41 PM

Status of Bidi? The w3c spec, or the use cases we planned to support?

Titus Fortner 9:41 PM

the latter

and the former to the extent that it might be what is driving the latter?

Simon Stewart 9:41 PM

@Luis Correia Acknowledged. We’ll talk about docs after the bidi stuff

The w3c spec won’t be finished before we ship 4.0, so let’s set that aside

Titus Fortner 9:42 PM

oh yes, I waited until after we were done talking about betas and RCs to bring this up :slightly_smiling_face

this is future roadmap things

Simon Stewart 9:42 PM

So, the use cases from the issue were

  • Listen for DOM events
  • Log what’s going on in the browser including console and JS errors
  • Fail fast on any JS error
  • Intercept network requests allowing to mock backend requests
  • Record traffic (Alex: Allow replaying it?)
  • Authenticate on secure pages
  • Bootstrap scripts (for example, execute JavaScript snippet on every page load)

9:43 PM

Recording traffic can be done by the same code that does network interception

I think bootstrap scripts are probably the most poorly supported thing right now

9:44 PM

Technically, Java has code for it, but I have zero confidence it’s robust. Or, indeed, that I actually landed it

The w3c spec started with a discussion of use cases too, and there’s a lot of overlap (surprise!)

9:45 PM

I’d love to get script pinning using CDP in place. That’ll exercise bootstrap scripts sufficiently

Titus Fortner 9:46 PM

So maybe I need to better understand how the spec and selenium code are supporting each other. Do we need to make sure the features we are adding are documented in the spec?

(i.e. is one driving the other, or is this like before where geckodriver & w3c drove each other)

Simon Stewart 9:47 PM

The spec is currently putting in place a lot of the groundwork to start doing useful things, so it’s not covering the use cases yet

9:48 PM

I suspect that Selenium 4 utilisation will help steer the spec as we find out the subset of the CDP that’s actually useful for testing and automation

Titus Fortner 9:48 PM

perfect, thanks

Simon Stewart 9:48 PM

It’s something of a chicken-and-egg problem right now.

9:49 PM

Once we ship 4, I’m planning to switch my focus to the spec

Titus Fortner 晚上9:49

總是跟規格有關,對吧? :slightly_smiling_face

Simon Stewart 晚上9:49

總是 :slightly_smiling_face

我們還剩下 10 分鐘!我們是否該繼續討論文件了?

Titus Fortner 晚上9:49

@diemol 我們是否要改用/已經改用不同的主題了?

為了文件

Simon Stewart 晚上9:49

@Luis Correia 你可以請你詳細說明一下你的意思嗎?

Luis Correia 晚上9:50

關於單一埠格線還是文件?

Simon Stewart 晚上9:51

文件,拜託

Luis Correia 晚上9:52

好的,我的理解是目前的文件太過於局部,只解釋一件事,但可能沒有完整的背景脈絡,特別是在 grid 4 文件中

Simon Stewart 晚上9:52

你希望如何改變?

Luis Correia 晚上9:53

在網站上沒有一個章節列出所有可用的選項和開關,必須深入研究程式碼

晚上9:53

注意:這不是發布的阻礙,而是一個錦上添花的功能

晚上9:55

這是一個好的起始連結

https://selenium.programming.tw/documentation/en/grid/grid_4/

selenium.dev

Grid 4 :: Selenium 文件

Simon Stewart 晚上9:55

OK,所以比你從 selenium -h 得到的描述更好?

Titus Fortner 晚上9:55

https://selenium.programming.tw/documentation/en/grid/grid_4/configuring_components/config_help/

selenium.dev

Config help :: Selenium 文件

Selenium 文件

Luis Correia 晚上9:55

我會很樂意在網頁上看到這些

Simon Stewart 晚上9:56

好的。你可以請你在 https://github.com/SeleniumHQ/selenium/issues/8165 上留言嗎?

8165 使用新 Selenium 4 功能更新使用者文件 :rocket: 功能提案 Selenium 4 帶來了一系列全新的功能,而 https://selenium.programming.tw/documentation/en/ 需要更新以包含相關的文件。動機

最好能在文件中涵蓋以下新功能:• 相對定位器 • CDP 整合 • 新的 Grid 4.0 範例 ... 標籤 C-docs, Selenium-4-Beta 評論 2 https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | 2020年4月7日 | 由 GitHub 新增

Titus Fortner 晚上9:56

看起來我連結的頁面顯示了命令,但沒有顯示輸出?

Luis Correia 晚上9:56

@titusfortner 甚至說明原因,那才是適當的背景脈絡

晚上9:57

我會的 @simonstewart

Titus Fortner 晚上9:57

為此提供背景脈絡絕對會很有用

Simon Stewart 晚上9:57

非常感謝。那是追蹤改善文件的 issue,所以在該處新增評論會很有幫助

Titus Fortner 晚上9:58

或者你可以 PR 你認為可以提供背景脈絡的變更;文件都在公開的 repo 中。

我現在在 Sauce 文件方面有點掙扎。我很擅長確保資訊是「正確的」,但發現我不擅長解釋為什麼這對人們很重要,而這部分很重要

Simon Stewart 晚上9:59

@titusfortner 我猜你已經看過 https://developers.google.com/tech-writing 了?

Titus Fortner 晚上9:59

這就像我有「簡報」模式和「文件」模式,但我無法讓它們一起運作 :smile

Simon Stewart 晚上9:59

啊,是啊。很難掌握敘事方式

Titus Fortner 晚上10:00

嗯,在 Sauce 有些人的實際職業是組織資訊,以便人們可以理解,這也很有幫助

10:00

我還沒看過 tech-writing 頁面,看起來很有趣

Simon Stewart 晚上10:01

我們是否該總結了?我想我們涵蓋了大部分需要討論的事情

晚上10:02

主要的決定是等待 @jimevans 給予我們發布 beta 4 的綠燈。

我完全可以接受為此等待必要的時間,但我也聽到 @AutomatedTester 建議也許 @Puja Jagani 可以在這方面提供協助

Titus Fortner 晚上10:06

聽起來很棒,謝謝 @simonstewart!